dtc: clean up grow_data_for()
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 <miltonm@bga.com>main
parent
d429033851
commit
46779e8f8e
4
data.c
4
data.c
|
@ -57,6 +57,8 @@ struct data data_grow_for(struct data d, int xlen)
|
|||
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, int xlen)
|
|||
|
||||
nd.asize = newsize;
|
||||
nd.val = xrealloc(d.val, newsize);
|
||||
nd.len = d.len;
|
||||
nd.refs = d.refs;
|
||||
|
||||
assert(nd.asize >= (d.len + xlen));
|
||||
|
||||
|
|
Loading…
Reference in New Issue