Change the grow_data_for function to copy struct data and modifiy the fields it is updating instead of storing all fields individually to a stack allocated struct.
This reduces maintence for future enhancements as now all instances of struct data are created by modifying a copy of an existing struct data or directly copying empty_data. Signed-off-by: Milton Miller <[EMAIL PROTECTED]> --- It took me a bit of time to find the source of the uninitialized pointer that was causing my changes to segfault. diff --git a/data.c b/data.c index 5d7db17..3d68792 100644 --- a/data.c +++ b/data.c @@ -57,6 +57,8 @@ struct data data_grow_for(struct data d, if (xlen == 0) return d; + nd = d; + newsize = xlen; while ((d.len + xlen) > newsize) @@ -64,8 +66,6 @@ struct data data_grow_for(struct data d, nd.asize = newsize; nd.val = xrealloc(d.val, newsize); - nd.len = d.len; - nd.refs = d.refs; assert(nd.asize >= (d.len + xlen)); _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev