diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-05-16 11:55:06 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-05-16 11:55:06 +0000 |
commit | f3a3a05ade784ff6906e5c8b132c9440a8db44e5 (patch) | |
tree | 35f1cfbb0a880a592487450c5a9b8d37cfe302b9 /source3/aparser/templates/prs_array.tpl | |
parent | 466338b165a19149e7a938bf4302c95dcab82beb (diff) | |
download | samba-f3a3a05ade784ff6906e5c8b132c9440a8db44e5.tar.gz samba-f3a3a05ade784ff6906e5c8b132c9440a8db44e5.tar.bz2 samba-f3a3a05ade784ff6906e5c8b132c9440a8db44e5.zip |
another awk parser update
we can now handle arrays of structures, pointers to structures,
pointers in unions etc
(This used to be commit 1df80cd1e8475b6b2fe7b80b6c9089692ab7691b)
Diffstat (limited to 'source3/aparser/templates/prs_array.tpl')
-rw-r--r-- | source3/aparser/templates/prs_array.tpl | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/source3/aparser/templates/prs_array.tpl b/source3/aparser/templates/prs_array.tpl index ca707148db..1bf3fa4b04 100644 --- a/source3/aparser/templates/prs_array.tpl +++ b/source3/aparser/templates/prs_array.tpl @@ -1,7 +1,8 @@ - if (il->@ARRAYLEN@ > 0) { - il->@ELEM@ = (@TYPE@ *)malloc(sizeof(@TYPE@)*il->@ARRAYLEN@); - if (!il->@ELEM@) goto fail; - if (!prs_@TYPE@s(True, "@ELEM@", ps, depth+1, il->@ELEM@, il->@ARRAYLEN@)) goto fail; - } else { - il->@ELEM@ = NULL; + if ((@FLAGS@ & PARSE_SCALARS) && + !io_alloc("@ELEM@", ps, (void **)&il->@ELEM@, sizeof(*(il->@ELEM@))*il->@ARRAY_LEN@)) goto fail; + { + int i; + for (i=0;i<il->@ARRAY_LEN@;i++) { + if (!io_@TYPE@("@ELEM@...", ps, depth+1, &il->@ELEM@[i], @FLAGS@)) goto fail; + } } |