From 683d04b553b3d7814ee55a12eff5b2f0cf61a511 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Mon, 25 Sep 1989 17:47:41 +0000 Subject: [PATCH] Fix bug in `grow_data_buffer': forgot to update the pointers into the reallocated structure. --- v7/src/microcode/findprim.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/v7/src/microcode/findprim.c b/v7/src/microcode/findprim.c index 051c212ef..2596815cd 100644 --- a/v7/src/microcode/findprim.c +++ b/v7/src/microcode/findprim.c @@ -1,6 +1,6 @@ /* -*-C-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/findprim.c,v 9.41 1989/09/20 23:04:37 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/findprim.c,v 9.42 1989/09/25 17:47:41 cph Exp $ Copyright (c) 1987, 1988, 1989 Massachusetts Institute of Technology @@ -838,10 +838,21 @@ initialize_data_buffer () void grow_data_buffer () { + char * old_data_buffer = ((char *) data_buffer); buffer_length *= 2; data_buffer = ((struct descriptor (*) []) (xrealloc (data_buffer, (buffer_length * (sizeof (struct descriptor)))))); + { + register struct descriptor ** scan = result_buffer; + register struct descriptor ** end = (result_buffer + buffer_index); + register long offset = (((char *) data_buffer) - old_data_buffer); + while (scan < end) + { + (*scan) = ((struct descriptor *) (((char*) (*scan)) + offset)); + scan += 1; + } + } result_buffer = ((struct descriptor **) (xrealloc (result_buffer, -- 2.25.1