[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdepim/indexlib
From: Luís Pedro Coelho <luis () luispedro ! org>
Date: 2006-09-05 0:51:51
Message-ID: 1157417511.101096.26545.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 581014 by luis_pedro:
Cleanup correctly when deleting. Previously, references would be wrong.
M +9 -0 leafdata.cpp
M +12 -0 memreference.h
--- branches/KDE/3.5/kdepim/indexlib/leafdata.cpp #581013:581014
@@ -117,6 +117,15 @@
unsigned nbytes = end().raw() - first.raw();
std::memmove( const_cast<unsigned char*>( first.raw() ), next.raw(), nbytes );
set_usedbytes( usedbytes() - nbytes );
+ unsigned char* iter = first.raw();
+ for ( ; iter < end().raw(); ++iter) {
+ if (*iter) --*iter;
+ else {
+ ++iter;
+ byte_io::write<uint32_t>(iter,byte_io::read<uint32_t>(iter)-1);
+ iter += byte_io::byte_lenght<uint32_t>();
+ }
+ }
}
}
--- branches/KDE/3.5/kdepim/indexlib/memreference.h #581013:581014
@@ -85,12 +85,24 @@
}
template <typename T>
+memory_reference<T> operator --( memory_reference<T> ref ) {
+ return ref = ref - 1;
+}
+
+template <typename T>
T operator ++( memory_reference<T> ref, int ) {
T v = ref;
ref = ref + 1;
return v;
}
+template <typename T>
+T operator --( memory_reference<T> ref, int ) {
+ T v = ref;
+ ref = ref - 1;
+ return v;
+}
+
template <typename T, typename U>
memory_reference<T> operator -= ( memory_reference<T> ref, U v ) {
return ref = ref - v;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic