From a1cf5dc4e23dd1b254c4ca0f84a1f79ef2303c87 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Mon, 30 Jun 1997 04:10:05 +0000 Subject: [PATCH] (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 --- lib/asn1/gen_length.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/asn1/gen_length.c b/lib/asn1/gen_length.c index 396968c3f..f5b5096d9 100644 --- a/lib/asn1/gen_length.c +++ b/lib/asn1/gen_length.c @@ -67,15 +67,15 @@ length_type (char *name, Type *t, char *variable) fprintf (codefile, "{\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); - sprintf (n, "&(%s)->val[(%s)->len-1]", name, name); + fprintf (codefile, "for(i = (%s)->len - 1; i >= 0; --i){\n", name); + sprintf (n, "&(%s)->val[i]", name); length_type(n, t->subtype, variable); - fprintf(codefile, - "(%s)->len--;\n" - "}\n", - name); + fprintf (codefile, "}\n"); + fprintf (codefile, "%s += 1 + length_len(%s) + oldret;\n" "}\n", variable, variable);