From 1b7e795c033d54883bda2466a97c612aefb8e5cc Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Sat, 26 Feb 2005 08:48:22 +0000 Subject: [PATCH] add Deletes where needed, to reduce memory use git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7007 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/Swig/parms.c | 51 +++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/Source/Swig/parms.c b/Source/Swig/parms.c index 7e9a7e798..2b0691dce 100644 --- a/Source/Swig/parms.c +++ b/Source/Swig/parms.c @@ -158,16 +158,15 @@ int ParmList_len(ParmList *p) { * ---------------------------------------------------------------------- */ String *ParmList_str(ParmList *p) { - String *out; - SwigType *t; - - out = NewString(""); + String *out = NewString(""); while(p) { - t = Getattr(p,"type"); - Printf(out,"%s", SwigType_str(t,Getattr(p,"name"))); + String *pstr = SwigType_str(Getattr(p,"type"), Getattr(p,"name")); + Printf(out,"%s", pstr); p = nextSibling(p); - if (p) + if (p) { Printf(out,","); + } + Delete(pstr); } return out; } @@ -179,20 +178,19 @@ String *ParmList_str(ParmList *p) { * ---------------------------------------------------------------------- */ String *ParmList_str_defaultargs(ParmList *p) { - String *out; - String *value; - SwigType *t; - - out = NewString(""); + String *out = NewString(""); while(p) { - t = Getattr(p,"type"); - Printf(out,"%s", SwigType_str(t,Getattr(p,"name"))); - value = Getattr(p,"value"); - if (value) + String *value = Getattr(p,"value"); + String *pstr = SwigType_str(Getattr(p,"type"), Getattr(p,"name")); + Printf(out,"%s", pstr); + if (value) { Printf(out,"=%s", value); + } p = nextSibling(p); - if (p) + if (p) { Printf(out,","); + } + Delete(pstr); } return out; } @@ -204,20 +202,19 @@ String *ParmList_str_defaultargs(ParmList *p) { * ---------------------------------------------------------------------- */ String *ParmList_protostr(ParmList *p) { - String *out; - SwigType *t; - - out = NewString(""); + String *out = NewString(""); while(p) { if (Getattr(p,"hidden")) { p = nextSibling(p); - continue; + } else { + String *pstr = SwigType_str(Getattr(p,"type"), 0); + Printf(out,"%s", pstr); + p = nextSibling(p); + if (p) { + Printf(out,","); + } + Delete(pstr); } - t = Getattr(p,"type"); - Printf(out,"%s", SwigType_str(t,0)); - p = nextSibling(p); - if (p) - Printf(out,","); } return out; }