From c9352f0785425a7de6388399a63bc29e0fee1368 Mon Sep 17 00:00:00 2001 From: Hannes Kuchelmeister Date: Sat, 2 Jan 2021 16:35:03 +0100 Subject: [PATCH] fix segmentation fault by removing Node* in subclasses --- Assignment_2/lib/FineList.cpp | 7 +++---- Assignment_2/lib/LazyList.cpp | 1 - Assignment_2/lib/MultiSet.cpp | 1 - Assignment_2/lib/OptimisticList.cpp | 1 - 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/Assignment_2/lib/FineList.cpp b/Assignment_2/lib/FineList.cpp index 9aa44d4..3450611 100644 --- a/Assignment_2/lib/FineList.cpp +++ b/Assignment_2/lib/FineList.cpp @@ -1,12 +1,9 @@ -#pragma once - #include #include"Node.h" #include"Set.h" class FineSet:public Set { - Node* first; public: FineSet(); bool add(int element); @@ -17,11 +14,13 @@ class FineSet:public Set { FineSet::FineSet() : Set("FineSet") { } bool FineSet::add(int element) { - this->first->lock(); + first->lock(); + return true; Node* p = this->first; Node* c = p->next; c->lock(); while (c->is_smaller_than(element)) { + std::cout << "C: "<< c->next << std::endl; p->unlock(); p = c; c = c->next; diff --git a/Assignment_2/lib/LazyList.cpp b/Assignment_2/lib/LazyList.cpp index 624ade6..c98b6d7 100644 --- a/Assignment_2/lib/LazyList.cpp +++ b/Assignment_2/lib/LazyList.cpp @@ -5,7 +5,6 @@ class LazySet:public Set { protected: - Node* first; void locate(int element, Node* prev, Node* cur); public: diff --git a/Assignment_2/lib/MultiSet.cpp b/Assignment_2/lib/MultiSet.cpp index fb6de26..e14d58e 100644 --- a/Assignment_2/lib/MultiSet.cpp +++ b/Assignment_2/lib/MultiSet.cpp @@ -4,7 +4,6 @@ #include"Set.h" class MultiSet:public Set { - Node* first; public: MultiSet(); bool add(int element); diff --git a/Assignment_2/lib/OptimisticList.cpp b/Assignment_2/lib/OptimisticList.cpp index 3a1535b..52f070f 100644 --- a/Assignment_2/lib/OptimisticList.cpp +++ b/Assignment_2/lib/OptimisticList.cpp @@ -5,7 +5,6 @@ class OptimisticSet:public Set { protected: - Node* first; bool validate(Node* p, Node* c); public: OptimisticSet();