projects
/
c11tester.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more fixes
[c11tester.git]
/
stl-model.h
diff --git
a/stl-model.h
b/stl-model.h
index 24ed29a6ddd33306dff6d0d1543f61b7b6c23ebf..bf34ec7d60b03ba10ea3b3df6c3b3891b629ef9c 100644
(file)
--- a/
stl-model.h
+++ b/
stl-model.h
@@
-10,12
+10,14
@@
class mllnode {
_Tp getVal() {return val;}
mllnode<_Tp> * getNext() {return next;}
mllnode<_Tp> * getPrev() {return prev;}
_Tp getVal() {return val;}
mllnode<_Tp> * getNext() {return next;}
mllnode<_Tp> * getPrev() {return prev;}
+
MEMALLOC;
private:
mllnode<_Tp> * next;
mllnode<_Tp> * prev;
_Tp val;
MEMALLOC;
private:
mllnode<_Tp> * next;
mllnode<_Tp> * prev;
_Tp val;
+ template<typename T>
friend class ModelList;
};
friend class ModelList;
};
@@
-76,7
+78,7
@@
public:
}
}
}
}
-
void
erase(mllnode<_Tp> * node) {
+
mllnode<_Tp> *
erase(mllnode<_Tp> * node) {
if (head == node) {
head = node->next;
} else {
if (head == node) {
head = node->next;
} else {
@@
-88,15
+90,16
@@
public:
} else {
tail->next->prev = node->prev;
}
} else {
tail->next->prev = node->prev;
}
-
+ mllnode<_Tp> *next = node->next;
delete node;
delete node;
+ return next;
}
}
- mllnode<_Tp> begin() {
+ mllnode<_Tp>
*
begin() {
return head;
}
return head;
}
- mllnode<_Tp> end() {
+ mllnode<_Tp>
*
end() {
return tail;
}
return tail;
}
@@
-127,6
+130,7
@@
class sllnode {
sllnode<_Tp> * next;
sllnode<_Tp> * prev;
_Tp val;
sllnode<_Tp> * next;
sllnode<_Tp> * prev;
_Tp val;
+ template<typename T>
friend class SnapList;
};
friend class SnapList;
};
@@
-187,7
+191,7
@@
public:
}
}
}
}
-
void
erase(sllnode<_Tp> * node) {
+
sllnode<_Tp> *
erase(sllnode<_Tp> * node) {
if (head == node) {
head = node->next;
} else {
if (head == node) {
head = node->next;
} else {
@@
-199,15
+203,17
@@
public:
} else {
tail->next->prev = node->prev;
}
} else {
tail->next->prev = node->prev;
}
-
+
+ sllnode<_Tp> *next = node->next;
delete node;
delete node;
+ return next;
}
}
- sllnode<_Tp> begin() {
+ sllnode<_Tp>
*
begin() {
return head;
}
return head;
}
- sllnode<_Tp> end() {
+ sllnode<_Tp>
*
end() {
return tail;
}
return tail;
}