X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=stl-model.h;h=53e412061d2178fc3f839882fa883400c57b4944;hb=HEAD;hp=d787a2d7951d1cb0589f219a2678a7a4060f7ccd;hpb=0fd64e09bb7a48d62eb724507f8716f1af4dc8d7;p=c11tester.git diff --git a/stl-model.h b/stl-model.h index d787a2d7..53e41206 100644 --- a/stl-model.h +++ b/stl-model.h @@ -5,7 +5,6 @@ #include "mymemory.h" typedef unsigned int uint; - template class mllnode { public: @@ -165,6 +164,8 @@ private: uint _size; }; +class actionlist; + template class sllnode { public: @@ -179,6 +180,7 @@ private: _Tp val; template friend class SnapList; + friend class actionlist; }; template @@ -367,7 +369,7 @@ public: _size(_capacity), capacity(_capacity), array((type *) model_malloc(sizeof(type) * _capacity)) { - memcpy(array, _array, capacity * sizeof(type)); + real_memcpy(array, _array, capacity * sizeof(type)); } void pop_back() { _size--; @@ -472,7 +474,7 @@ public: _size(_capacity), capacity(_capacity), array((type *) snapshot_malloc(sizeof(type) * _capacity)) { - memcpy(array, _array, capacity * sizeof(type)); + real_memcpy(array, _array, capacity * sizeof(type)); } void pop_back() { _size--; @@ -537,6 +539,15 @@ public: array[index] = item; } + void remove(type item) { + for(uint i = 0;i < _size;i++) { + if (at(i) == item) { + removeAt(i); + return; + } + } + } + void removeAt(uint index) { for (uint i = index;(i + 1) < _size;i++) { set(i, at(i + 1));