added grow_size to prs structure
authorAndrew Tridgell <tridge@samba.org>
Mon, 15 May 2000 09:56:30 +0000 (09:56 +0000)
committerAndrew Tridgell <tridge@samba.org>
Mon, 15 May 2000 09:56:30 +0000 (09:56 +0000)
source/aparser/parser.c
source/aparser/parser.h

index a324f804f864448cff75fd39dcaa66d1d0b7ece3..27605dcfec6b8e39eb8141bee67ecb7db0a4cd25 100644 (file)
@@ -46,6 +46,8 @@ BOOL prs_grow(prs_struct *ps, uint32 extra_space)
        uint32 new_size;
        char *new_data;
 
+       ps->grow_size = MAX(ps->grow_size, ps->data_offset + extra_space);
+
        if(ps->data_offset + extra_space <= ps->buffer_size)
                return True;
 
@@ -267,7 +269,7 @@ void dump_data(int level,char *buf1,int len)
  ********************************************************************/
 BOOL prs_pointer(char *desc, prs_struct *ps, int depth, void **p)
 {
-       uint32 v;
+       uint32 v = (*p) ? 1 : 0;
        if (!prs_uint32(desc, ps, depth, &v)) return False;
        *p = (void *) (v ? 1 : 0);
        return True;
index 843d0c7a11834a4849f5fe63a21b7d122c15d794..353a879cb7286f569e8da367f6c093ff6655cfd3 100644 (file)
@@ -48,6 +48,7 @@ typedef struct _prs_struct
        BOOL is_dynamic; /* Do we own this memory or not ? */
        uint32 data_offset; /* Current working offset into data. */
        uint32 buffer_size; /* Current size of the buffer. */
+       uint32 grow_size; /* size requested via prs_grow() calls */
        char *data_p; /* The buffer itself. */
 } prs_struct;