X-Git-Url: http://git.tdb.fi/?p=gldbg.git;a=blobdiff_plain;f=source%2Fgldecoder.funcs.t;h=545f8b408522a652c5c72cddd3383149f5c34d9d;hp=e02c1e815277fca0833a47489ff0aff3e5fe0e74;hb=4aba13fc7690cf79e949d9765b371e85e7530207;hpb=03c86c2f632b642aa94f721e326787e91aa69c25 diff --git a/source/gldecoder.funcs.t b/source/gldecoder.funcs.t index e02c1e8..545f8b4 100644 --- a/source/gldecoder.funcs.t +++ b/source/gldecoder.funcs.t @@ -1,22 +1,22 @@ # $Id$ -wl('static unsigned decode_%s(GlDecoder *dec, const char *data __attribute__((unused)))', func.name) +:#define UNUSED __attribute__((unused)) +wl('static unsigned decode_%s(GlDecoder *dec, GlPacket *pkt UNUSED)', func.name) wl('{') -wl(' unsigned pos = 0;') if ret.ctype!="void": wl(' %s ret;', ret.ctype) for p in params: wl(' %s p_%s;', p.ctype, p.name) -if ret.ctype!="void": - wl(' pos += read_%s((%s *)&ret, data+pos);', ret.io[0].replace(' ', '_'), ret.io[0]) for p in params: if p.kind=="value": - wl(' pos += read_%s((%s *)&p_%s, data+pos);', p.io[0].replace(' ', '_'), p.io[0], p.name) + wl(' read_%s((%s *)&p_%s, pkt);', p.io[0].replace(' ', '_'), p.io[0], p.name) elif p.kind=="array" and p.io and p.io[0]=="string": - wl(' pos += read_string_array(&p_%s, data+pos);', p.name) + wl(' read_string_array(&p_%s, pkt);', p.name) elif p.csize: - wl(' pos += read_data((const void **)&p_%s, data+pos);', p.name) + wl(' read_data((pointer *)&p_%s, pkt);', p.name) else: - wl(' pos += read_pointer((void **)&p_%s, data+pos);', p.name) + wl(' read_pointer((pointer *)&p_%s, pkt);', p.name) +if ret.ctype!="void": + wl(' read_%s((%s *)&ret, pkt);', ret.io[0].replace(' ', '_'), ret.io[0]) wl(' if(dec->%s)', func.name) w(' dec->%s(dec->user_data', func.name) if ret.ctype!="void": @@ -24,13 +24,14 @@ if ret.ctype!="void": for p in params: w(', p_%s', p.name) wl(');') -wl(' return pos;') +wl(' return 0;') wl('}') -:static int decode_func(GlDecoder *dec, unsigned short func, const char *data) +:static int decode_func(GlDecoder *dec, unsigned short func, GlPacket *pkt) :{ : switch(func) : { -wl(' case FUNC_%s: return decode_%s(dec, data);', func.name.upper(), func.name) +wl(' case FUNC_%s: decode_%s(dec, pkt); break;', func.name.upper(), func.name) : default: return -1; : } +: return 0; :}