(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
	 Assar Westerlund
					Assar Westerlund