summaryrefslogtreecommitdiff
path: root/utils/d_ary_heap.h
diff options
context:
space:
mode:
authorgraehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-08-31 21:11:29 +0000
committergraehl <graehl@ec762483-ff6d-05da-a07a-a48fb63a330f>2010-08-31 21:11:29 +0000
commit58977de378970d1d2c993c4eb00cb5ed0d74a83f (patch)
treeb48c47bda48597818de5936b74d1ca10845126a2 /utils/d_ary_heap.h
parent0f5a4475fa15a135a0e6bab2b83d8828fb15f77f (diff)
valgrind
git-svn-id: https://ws10smt.googlecode.com/svn/trunk@637 ec762483-ff6d-05da-a07a-a48fb63a330f
Diffstat (limited to 'utils/d_ary_heap.h')
-rw-r--r--utils/d_ary_heap.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/utils/d_ary_heap.h b/utils/d_ary_heap.h
index 606382c2..fea0883b 100644
--- a/utils/d_ary_heap.h
+++ b/utils/d_ary_heap.h
@@ -1,6 +1,8 @@
#ifndef D_ARY_HEAP_H
#define D_ARY_HEAP_H
+#include "show.h"
+#define DDARY(x) x
#define D_ARY_PUSH_GRAEHL 0 // untested
#define D_ARY_POP_GRAEHL 0 // untested
@@ -213,7 +215,7 @@
#if D_ARY_TRACK_OUT_OF_HEAP
using boost::put;
for (typename Container::iterator i=data.begin(),e=data.end();i!=e;++i)
- put(index_in_heap,*i,D_ARY_HEAP_NULL_INDEX);
+ put(index_in_heap,*i,(size_type)D_ARY_HEAP_NULL_INDEX);
#endif
data.clear();
}
@@ -244,7 +246,7 @@
void pop() {
using boost::put;
if(D_ARY_TRACK_OUT_OF_HEAP)
- put(index_in_heap, data[0], D_ARY_HEAP_NULL_INDEX);
+ put(index_in_heap, data[0], (size_type)D_ARY_HEAP_NULL_INDEX);
if (data.size() != 1) {
if (D_ARY_POP_GRAEHL) {
preserve_heap_property_down(data.back(),0,data.size()-1);
@@ -287,8 +289,9 @@
// because maybe size_type is signed or unsigned
inline bool contains(const Value &v,size_type i) const {
if (D_ARY_TRACK_OUT_OF_HEAP)
- return i != D_ARY_HEAP_NULL_INDEX;
+ return i != (size_type)D_ARY_HEAP_NULL_INDEX;
size_type sz=data.size();
+ SHOWM2(DDARY,"d_ary_heap contains",i,data.size());
return i>=0 && i<sz && equal(v,data[i]); // note: size_type may be signed (don't recommend it, though) - thus i>=0 check to catch uninit. data
}
#include "warning_pop.h"