From 48d21c2b35cdd2f43b92efa7342d0502bbbc49b3 Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Sun, 1 Jan 2006 11:03:35 +0000 Subject: [PATCH] avoid multiple Len() calls git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8161 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/CParse/templ.c | 3 ++- Source/Swig/stype.c | 19 +++++++++++-------- Source/Swig/symbol.c | 5 +++-- Source/Swig/typemap.c | 5 +++-- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Source/CParse/templ.c b/Source/CParse/templ.c index 54a5675ab..7761463fa 100644 --- a/Source/CParse/templ.c +++ b/Source/CParse/templ.c @@ -171,7 +171,8 @@ cparse_template_expand(Node *n, String *tname, String *rname, String *templatear List *bases = Getattr(n,baselists[b]); if (bases) { int i; - for (i = 0; i < Len(bases); i++) { + int ilen = Len(bases); + for (i = 0; i < ilen; i++) { String *name = Copy(Getitem(bases,i)); Setitem(bases,i,name); Append(typelist,name); diff --git a/Source/Swig/stype.c b/Source/Swig/stype.c index 1a1e0b18b..4c80c69df 100644 --- a/Source/Swig/stype.c +++ b/Source/Swig/stype.c @@ -987,7 +987,7 @@ String *SwigType_manglestr(SwigType *s) { void SwigType_typename_replace(SwigType *t, String *pat, String *rep) { String *nt; - int i; + int i, ilen; List *elem; if (!Strstr(t,pat)) return; @@ -998,7 +998,8 @@ SwigType_typename_replace(SwigType *t, String *pat, String *rep) { } nt = NewStringEmpty(); elem = SwigType_split(t); - for (i = 0; i < Len(elem); i++) { + ilen = Len(elem); + for (i = 0; i < ilen; i++) { String *e = Getitem(elem,i); if (SwigType_issimple(e)) { if (StringEqual(e,pat)) { @@ -1014,13 +1015,14 @@ SwigType_typename_replace(SwigType *t, String *pat, String *rep) { { String *tsuffix; List *tparms = SwigType_parmlist(e); - int j; + int j, jlen; String *nt = SwigType_templateprefix(e); StringAppend(nt,"<("); - for (j = 0; j < Len(tparms); j++) { + jlen = Len(tparms); + for (j = 0; j < jlen; j++) { SwigType_typename_replace(Getitem(tparms,j), pat, rep); StringAppend(nt,Getitem(tparms,j)); - if (j < (Len(tparms)-1)) Putc(',',nt); + if (j < (jlen-1)) Putc(',',nt); } tsuffix = SwigType_templatesuffix(e); Printf(nt,")>%s", tsuffix); @@ -1042,14 +1044,15 @@ SwigType_typename_replace(SwigType *t, String *pat, String *rep) { Delete(rest); } } else if (SwigType_isfunction(e)) { - int j; + int j, jlen; List *fparms = SwigType_parmlist(e); Clear(e); StringAppend(e,"f("); - for (j = 0; j < Len(fparms); j++) { + jlen = Len(fparms); + for (j = 0; j < jlen; j++) { SwigType_typename_replace(Getitem(fparms,j), pat, rep); StringAppend(e,Getitem(fparms,j)); - if (j < (Len(fparms)-1)) Putc(',',e); + if (j < (jlen-1)) Putc(',',e); } StringAppend(e,")."); Delete(fparms); diff --git a/Source/Swig/symbol.c b/Source/Swig/symbol.c index fa125905c..e64b5c990 100644 --- a/Source/Swig/symbol.c +++ b/Source/Swig/symbol.c @@ -474,7 +474,7 @@ Swig_symbol_alias(String_or_char *aliasname, Symtab *s) { * ----------------------------------------------------------------------------- */ void Swig_symbol_inherit(Symtab *s) { - int i; + int i, ilen; List *inherit = HashGetAttr(current_symtab,k_inherit); if (!inherit) { inherit = NewList(); @@ -482,7 +482,8 @@ void Swig_symbol_inherit(Symtab *s) { Delete(inherit); } assert(s != current_symtab); - for (i = 0; i < Len(inherit); i++) { + ilen = Len(inherit); + for (i = 0; i < ilen; i++) { Node *n = Getitem(inherit,i); if (n == s) return; /* Already inherited */ } diff --git a/Source/Swig/typemap.c b/Source/Swig/typemap.c index 10f86a2a9..8740f9c24 100644 --- a/Source/Swig/typemap.c +++ b/Source/Swig/typemap.c @@ -1724,11 +1724,12 @@ static void replace_embedded_typemap(String *s) { List *l; Hash *vars; String *method; - int i; + int i, ilen; l = split_embedded(tmp); vars = NewHash(); - for (i = 1; i < Len(l); i++) { + ilen = Len(l); + for (i = 1; i < ilen; i++) { String *n, *v; split_var(Getitem(l,i),&n,&v); if (n && v) {