~mdw
/
sgt
/
agedu
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
522edd9
)
Oops: when we re-mmap the file, don't forget to rebase the two
author
simon
<simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 7 Nov 2008 20:06:16 +0000
(20:06 +0000)
committer
simon
<simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 7 Nov 2008 20:06:16 +0000
(20:06 +0000)
pointers into it we're actually holding in main() as well as the
ones tucked away in subsystems' state.
git-svn-id: svn://svn.tartarus.org/sgt/agedu@8289
cda61777
-01e9-0310-a592-
d414129be87e
agedu.c
patch
|
blob
|
blame
|
history
diff --git
a/agedu.c
b/agedu.c
index
f823121
..
5b836e7
100644
(file)
--- a/
agedu.c
+++ b/
agedu.c
@@
-1088,6
+1088,9
@@
int main(int argc, char **argv)
int i;
if (totalsize - indexbuild_realsize(ib) < delta) {
+ const void *oldfile = mappedfile;
+ ptrdiff_t diff;
+
/*
* Unmap the file, grow it, and remap it.
*/
@@
-1113,6
+1116,14
@@
int main(int argc, char **argv)
indexbuild_rebase(ib, mappedfile);
triewalk_rebase(tw, mappedfile);
+ diff = (const unsigned char *)mappedfile -
+ (const unsigned char *)oldfile;
+ if (prevtf)
+ prevtf = (const struct trie_file *)
+ (((const unsigned char *)prevtf) + diff);
+ if (tf)
+ tf = (const struct trie_file *)
+ (((const unsigned char *)tf) + diff);
}
/*