(length_type): Make the length functions for SequenceOf
non-destructive git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1939 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -67,15 +67,15 @@ length_type (char *name, Type *t, char *variable)
|
|||||||
fprintf (codefile,
|
fprintf (codefile,
|
||||||
"{\n"
|
"{\n"
|
||||||
"int oldret = %s;\n"
|
"int oldret = %s;\n"
|
||||||
"%s = 0;\n", variable, variable);
|
"int i;\n"
|
||||||
|
"%s = 0;\n",
|
||||||
|
variable, variable);
|
||||||
|
|
||||||
fprintf (codefile, "while((%s)->len){\n", name);
|
fprintf (codefile, "for(i = (%s)->len - 1; i >= 0; --i){\n", name);
|
||||||
sprintf (n, "&(%s)->val[(%s)->len-1]", name, name);
|
sprintf (n, "&(%s)->val[i]", name);
|
||||||
length_type(n, t->subtype, variable);
|
length_type(n, t->subtype, variable);
|
||||||
fprintf(codefile,
|
fprintf (codefile, "}\n");
|
||||||
"(%s)->len--;\n"
|
|
||||||
"}\n",
|
|
||||||
name);
|
|
||||||
fprintf (codefile,
|
fprintf (codefile,
|
||||||
"%s += 1 + length_len(%s) + oldret;\n"
|
"%s += 1 + length_len(%s) + oldret;\n"
|
||||||
"}\n", variable, variable);
|
"}\n", variable, variable);
|
||||||
|
Reference in New Issue
Block a user