From: <bo...@us...> - 2003-12-13 05:06:21
|
Update of /cvsroot/sharedaemon/core/src In directory sc8-pr-cvs1:/tmp/cvs-serv24471 Modified Files: ParseClass.cpp Log Message: Fixed a bug which caused a structure to be not initialied on some circumstances (and thus causing a crash Index: ParseClass.cpp =================================================================== RCS file: /cvsroot/sharedaemon/core/src/ParseClass.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- ParseClass.cpp 12 Dec 2003 18:20:21 -0000 1.15 +++ ParseClass.cpp 13 Dec 2003 05:06:15 -0000 1.16 @@ -760,7 +760,6 @@ struct write_struct * & last ) const { const struct parsestruct * ps; - struct write_struct * prev; size_t i,done; u8 * dataptr; @@ -777,10 +776,6 @@ // NonArray: for (i=0;i<nume;++i) { for (ps=type;ps;ps=ps->next) { - prev=last; - last->next=new struct write_struct; - last=last->next; - if (ps->flags&PF_ARRAY0 || ps->type_id==STRUCT) { u32 num; @@ -805,13 +800,15 @@ return call_done; } - delete last; - prev->next=call_first; + last->next=call_first; last=call_last; done +=call_done; } } else { + last->next=new struct write_struct; + last=last->next; + switch (ps->type_id) { case WORD: last->data=new u8[2]; @@ -850,6 +847,7 @@ return done; Array: + struct write_struct * prev; size_t n=nume; struct tag * tag; u8 * ptr; |