add NewStringEmpty, use more StringEuqual and less Strcmp

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7897 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2005-11-28 17:32:56 +00:00
commit cf1585fef7
24 changed files with 253 additions and 218 deletions

View file

@ -54,7 +54,7 @@ static String *
Swig_clocal(SwigType *t, const String_or_char *name, const String_or_char *value) {
String *decl;
decl = NewString("");
decl = NewStringEmpty();
switch(SwigType_type(t)) {
case T_REFERENCE:
@ -235,7 +235,7 @@ int Swig_cargs(Wrapper *w, ParmList *p) {
String *Swig_cresult(SwigType *t, const String_or_char *name, const String_or_char *decl) {
String *fcall;
fcall = NewString("");
fcall = NewStringEmpty();
switch(SwigType_type(t)) {
case T_VOID:
break;
@ -289,7 +289,7 @@ Swig_cfunction_call(String_or_char *name, ParmList *parms) {
Parm *p = parms;
String *nname;
func = NewString("");
func = NewStringEmpty();
nname = SwigType_namestr(name);
/*
@ -359,7 +359,7 @@ Swig_cmethod_call(String_or_char *name, ParmList *parms, String_or_char *self) {
if (!self) self = (char *) "(this)->";
func = NewString("");
func = NewStringEmpty();
nname = SwigType_namestr(name);
if (!p) return func;
Append(func,self);
@ -420,7 +420,7 @@ String *
Swig_cconstructor_call(String_or_char *name) {
DOH *func;
func = NewString("");
func = NewStringEmpty();
Printf(func,"(%s *) calloc(1, sizeof(%s))", name, name);
return func;
}
@ -449,7 +449,7 @@ Swig_cppconstructor_base_call(String_or_char *name, ParmList *parms, int skip_se
i++;
}
nname = SwigType_namestr(name);
func = NewString("");
func = NewStringEmpty();
Printf(func,"new %s(", nname);
while (p) {
String *pname;
@ -625,7 +625,7 @@ Swig_cppdestructor_call(Node *n) {
String *
Swig_cmemberset_call(String_or_char *name, SwigType *type, String_or_char *self) {
String *func;
func = NewString("");
func = NewStringEmpty();
if (!self) self = NewString("(this)->");
else self = NewString(self);
Replaceall(self,"this",Swig_cparm_name(0,0));
@ -659,7 +659,7 @@ Swig_cmemberget_call(const String_or_char *name, SwigType *t,
if (!self) self = NewString("(this)->");
else self = NewString(self);
Replaceall(self,"this",Swig_cparm_name(0,0));
func = NewString("");
func = NewStringEmpty();
Printf(func,"%s (%s%s)", Swig_wrapped_var_assign(t,""),self, name);
Delete(self);
return func;
@ -976,7 +976,7 @@ Swig_ConstructorToFunction(Node *n, String *classname,
int abstract = Getattr(parent, "abstract") != 0;
String *name = Getattr(parent, "sym:name");
String* directorname = NewStringf("SwigDirector_%s", name);
String* action = NewString("");
String* action = NewStringEmpty();
String* tmp_none_comparison = Copy(none_comparison);
String* director_call;
String* nodirector_call;

View file

@ -71,7 +71,7 @@ Swig_warning(int wnum, const String_or_char *filename, int line, const char *fmt
va_start(ap,fmt);
out = NewString("");
out = NewStringEmpty();
vPrintf(out,fmt,ap);
{
char temp[64], *t;
@ -175,7 +175,7 @@ Swig_warnfilter(const String_or_char *wlist, int add) {
char *c;
String *s;
if (!filter) filter = NewString("");
if (!filter) filter = NewStringEmpty();
s = NewString(wlist);
c = Char(s);
c = strtok(c,", ");

View file

@ -142,7 +142,7 @@ Swig_search_path_any(int syspath) {
llist = 0;
slist = NewList();
assert(slist);
filename = NewString("");
filename = NewStringEmpty();
assert(filename);
#ifdef MACSWIG
Printf(filename,"%s",SWIG_FILE_DELIMETER);
@ -159,7 +159,7 @@ Swig_search_path_any(int syspath) {
for (i = 0; i < Len(directories); i++) {
dirname = Getitem(directories,i);
filename = NewString("");
filename = NewStringEmpty();
assert(filename);
Printf(filename, "%s%s", dirname, SWIG_FILE_DELIMETER);
if (syspath && !Getattr(dirname,"sysdir")) {
@ -244,7 +244,7 @@ Swig_open(const String_or_char *name) {
String *
Swig_read_file(FILE *f) {
char buffer[4096];
String *str = NewString("");
String *str = NewStringEmpty();
assert(str);
while (fgets(buffer,4095,f)) {

View file

@ -63,7 +63,7 @@ Swig_banner(File *f) {
String *Swig_string_escape(String *s) {
String *ns;
int c;
ns = NewString("");
ns = NewStringEmpty();
while ((c = Getc(s)) != EOF) {
if (c == '\n') {
@ -100,7 +100,7 @@ String *Swig_string_escape(String *s) {
String *Swig_string_upper(String *s) {
String *ns;
int c;
ns = NewString("");
ns = NewStringEmpty();
Seek(s,0,SEEK_SET);
while ((c = Getc(s)) != EOF) {
@ -118,7 +118,7 @@ String *Swig_string_upper(String *s) {
String *Swig_string_lower(String *s) {
String *ns;
int c;
ns = NewString("");
ns = NewStringEmpty();
Seek(s,0,SEEK_SET);
while ((c = Getc(s)) != EOF) {
@ -139,7 +139,7 @@ String *Swig_string_title(String *s) {
String *ns;
int first = 1;
int c;
ns = NewString("");
ns = NewStringEmpty();
Seek(s,0,SEEK_SET);
while ((c = Getc(s)) != EOF) {
@ -160,11 +160,11 @@ String *Swig_string_typecode(String *s) {
String *ns;
int c;
String *tc;
ns = NewString("");
ns = NewStringEmpty();
while ((c = Getc(s)) != EOF) {
if (c == '`') {
String *str = 0;
tc = NewString("");
tc = NewStringEmpty();
while ((c = Getc(s)) != EOF) {
if (c == '`') break;
Putc(c,tc);
@ -231,7 +231,7 @@ String *Swig_string_mangle(const String *s) {
}
return t;
#else
String *result = NewString("");
String *result = NewStringEmpty();
int space = 0;
int state = 0;
char *pc, *cb;
@ -245,13 +245,13 @@ String *Swig_string_mangle(const String *s) {
Delete(b);
b = t ;
}
pc = cb = Char(b);
pc = cb = StringChar(b);
while (*pc) {
char c = *pc;
if (isalnum((int)c) || (c == '_')) {
state = 1;
if (space && (space == state)) {
Append(result,"_SS_");
StringAppend(result,"_SS_");
}
space = 0;
Printf(result,"%c",(int)c);
@ -268,7 +268,7 @@ String *Swig_string_mangle(const String *s) {
switch(c) {
case '.':
if ((cb != pc) && (*(pc - 1) == 'p')) {
Append(result,"_");
StringAppend(result,"_");
++pc;
continue;
} else {
@ -277,7 +277,7 @@ String *Swig_string_mangle(const String *s) {
break;
case ':':
if (*(pc + 1) == ':') {
Append(result,"_");
StringAppend(result,"_");
++pc; ++pc;
continue;
}

View file

@ -147,7 +147,7 @@ Swig_name_wrapper(const String_or_char *fname) {
String *r;
String *f;
r = NewString("");
r = NewStringEmpty();
if (!naming_hash) naming_hash = NewHash();
f = Getattr(naming_hash,"wrapper");
if (!f) {
@ -175,7 +175,7 @@ Swig_name_member(const String_or_char *classname, const String_or_char *mname) {
char *cname;
rclassname = SwigType_namestr(classname);
r = NewString("");
r = NewStringEmpty();
if (!naming_hash) naming_hash = NewHash();
f = Getattr(naming_hash,"member");
if (!f) {
@ -211,7 +211,7 @@ Swig_name_get(const String_or_char *vname) {
Printf(stdout,"Swig_name_get: '%s'\n", vname);
#endif
r = NewString("");
r = NewStringEmpty();
if (!naming_hash) naming_hash = NewHash();
f = Getattr(naming_hash,"get");
if (!f) {
@ -235,7 +235,7 @@ Swig_name_set(const String_or_char *vname) {
String *r;
String *f;
r = NewString("");
r = NewStringEmpty();
if (!naming_hash) naming_hash = NewHash();
f = Getattr(naming_hash,"set");
if (!f) {
@ -262,7 +262,7 @@ Swig_name_construct(const String_or_char *classname) {
char *cname;
rclassname = SwigType_namestr(classname);
r = NewString("");
r = NewStringEmpty();
if (!naming_hash) naming_hash = NewHash();
f = Getattr(naming_hash,"construct");
if (!f) {
@ -297,7 +297,7 @@ Swig_name_copyconstructor(const String_or_char *classname) {
char *cname;
rclassname = SwigType_namestr(classname);
r = NewString("");
r = NewStringEmpty();
if (!naming_hash) naming_hash = NewHash();
f = Getattr(naming_hash,"construct");
if (!f) {
@ -330,7 +330,7 @@ String *Swig_name_destroy(const String_or_char *classname) {
String *rclassname;
char *cname;
rclassname = SwigType_namestr(classname);
r = NewString("");
r = NewStringEmpty();
if (!naming_hash) naming_hash = NewHash();
f = Getattr(naming_hash,"destroy");
if (!f) {
@ -363,7 +363,7 @@ String *Swig_name_disown(const String_or_char *classname) {
String *rclassname;
char *cname;
rclassname = SwigType_namestr(classname);
r = NewString("");
r = NewStringEmpty();
if (!naming_hash) naming_hash = NewHash();
f = Getattr(naming_hash,"disown");
if (!f) {

View file

@ -192,7 +192,7 @@ int ParmList_len(ParmList *p) {
* ---------------------------------------------------------------------- */
String *ParmList_str(ParmList *p) {
String *out = NewString("");
String *out = NewStringEmpty();
while(p) {
String *pstr = SwigType_str(Getattr(p,"type"), Getattr(p,"name"));
Append(out,pstr);
@ -212,7 +212,7 @@ String *ParmList_str(ParmList *p) {
* ---------------------------------------------------------------------- */
String *ParmList_str_defaultargs(ParmList *p) {
String *out = NewString("");
String *out = NewStringEmpty();
while(p) {
String *value = Getattr(p,"value");
String *pstr = SwigType_str(Getattr(p,"type"), Getattr(p,"name"));
@ -236,7 +236,7 @@ String *ParmList_str_defaultargs(ParmList *p) {
* ---------------------------------------------------------------------- */
String *ParmList_protostr(ParmList *p) {
String *out = NewString("");
String *out = NewStringEmpty();
while(p) {
if (Getattr(p,"hidden")) {
p = nextSibling(p);

View file

@ -48,7 +48,7 @@ NewSwigScanner() {
s->yylen = 0;
s->idstart = "";
s->scanobjs = NewList();
s->text = NewString("");
s->text = NewStringEmpty();
s->str = 0;
return s;
}

View file

@ -146,7 +146,7 @@ SwigType *NewSwigType(int t) {
default :
break;
}
return NewString("");
return NewStringEmpty();
}
/* -----------------------------------------------------------------------------
@ -357,6 +357,7 @@ void SwigType_add_default(String *def, SwigType *nr)
SwigType *SwigType_default(SwigType *t) {
String *r1, *def;
String *r = 0;
char *cr;
#ifdef SWIG_DEFAULT_CACHE
if (!default_cache) default_cache = NewHash();
@ -388,20 +389,21 @@ SwigType *SwigType_default(SwigType *t) {
}
Delete(q);
}
if (Strcmp(r,"p.SWIGTYPE") == 0) {
cr = Char(r);
if (strcmp(cr,"p.SWIGTYPE") == 0) {
def = NewString("SWIGTYPE");
} else if (SwigType_ispointer(r)) {
#ifdef SWIG_NEW_TYPE_DEFAULT
SwigType *nr = Copy(r);
SwigType_del_pointer(nr);
def = SwigType_isfunction(nr) ?
NewString("") : NewString("p.");
NewStringEmpty() : NewString("p.");
SwigType_add_default(def, nr);
Delete(nr);
#else
def = NewString("p.SWIGTYPE");
#endif
} else if (Strcmp(r,"r.SWIGTYPE") == 0) {
} else if (strcmp(cr,"r.SWIGTYPE") == 0) {
def = NewString("SWIGTYPE");
} else if (SwigType_isreference(r)) {
#ifdef SWIG_NEW_TYPE_DEFAULT
@ -414,9 +416,9 @@ SwigType *SwigType_default(SwigType *t) {
def = NewString("r.SWIGTYPE");
#endif
} else if (SwigType_isarray(r)) {
if (Strcmp(r,"a().SWIGTYPE") == 0) {
if (strcmp(cr,"a().SWIGTYPE") == 0) {
def = NewString("p.SWIGTYPE");
} else if (Strcmp(r,"a(ANY).SWIGTYPE") == 0) {
} else if (strcmp(cr,"a(ANY).SWIGTYPE") == 0) {
def = NewString("a().SWIGTYPE");
} else {
int i, empty = 0;
@ -444,19 +446,19 @@ SwigType *SwigType_default(SwigType *t) {
#endif
}
} else if (SwigType_ismemberpointer(r)) {
if (Strcmp(r,"m(CLASS).SWIGTYPE") == 0) {
if (strcmp(cr,"m(CLASS).SWIGTYPE") == 0) {
def = NewString("p.SWIGTYPE");
} else {
def = NewString("m(CLASS).SWIGTYPE");
}
} else if (SwigType_isenum(r)) {
if (Strcmp(r,"enum SWIGTYPE") == 0) {
if (strcmp(cr,"enum SWIGTYPE") == 0) {
def = NewString("SWIGTYPE");
} else {
def = NewString("enum SWIGTYPE");
}
} else if (SwigType_isfunction(r)) {
if (Strcmp(r,"f(ANY).SWIGTYPE") == 0) {
if (strcmp(cr,"f(ANY).SWIGTYPE") == 0) {
def = NewString("p.SWIGTYPE");
} else {
def = NewString("p.f(ANY).SWIGTYPE");
@ -469,7 +471,7 @@ SwigType *SwigType_default(SwigType *t) {
/* The cache produces strange results, see enum_template.i case */
Setattr(default_cache,t,Copy(def));
#endif
if (Strcmp(def,t) == 0) {
if (StringEqual(def,t)) {
Delete(def);
def = 0;
}
@ -548,7 +550,7 @@ SwigType_str(SwigType *s, const String_or_char *id)
if (id) {
result = NewString(id);
} else {
result = NewString("");
result = NewStringEmpty();
}
elements = SwigType_split(s);
@ -646,7 +648,7 @@ SwigType_ltype(SwigType *s) {
int firstarray = 1;
int notypeconv = 0;
result = NewString("");
result = NewStringEmpty();
tc = Copy(s);
/* Nuke all leading qualifiers */
while (SwigType_isqualifier(tc)) {
@ -756,7 +758,7 @@ String *SwigType_rcaststr(SwigType *s, const String_or_char *name) {
int isreference = 0;
int isarray = 0;
result = NewString("");
result = NewStringEmpty();
if (SwigType_isconst(s)) {
tc = Copy(s);
@ -858,7 +860,7 @@ String *SwigType_rcaststr(SwigType *s, const String_or_char *name) {
}
Delete(elements);
if (clear) {
cast = NewString("");
cast = NewStringEmpty();
} else {
cast = NewStringf("(%s)",result);
}
@ -884,7 +886,7 @@ String *SwigType_rcaststr(SwigType *s, const String_or_char *name) {
String *SwigType_lcaststr(SwigType *s, const String_or_char *name) {
String *result;
result = NewString("");
result = NewStringEmpty();
if (SwigType_isarray(s)) {
Printf(result,"(%s)%s", SwigType_lstr(s,0),name);
@ -981,16 +983,16 @@ SwigType_typename_replace(SwigType *t, String *pat, String *rep) {
if (!Strstr(t,pat)) return;
if (Strcmp(t,pat) == 0) {
if (StringEqual(t,pat)) {
Replace(t,pat,rep,DOH_REPLACE_ANY);
return;
}
nt = NewString("");
nt = NewStringEmpty();
elem = SwigType_split(t);
for (i = 0; i < Len(elem); i++) {
String *e = Getitem(elem,i);
if (SwigType_issimple(e)) {
if (Strcmp(e,pat) == 0) {
if (StringEqual(e,pat)) {
/* Replaces a type of the form 'pat' with 'rep<args>' */
Replace(e,pat,rep,DOH_REPLACE_ANY);
} else if (SwigType_istemplate(e)) {

View file

@ -176,6 +176,7 @@ static Hash *global_scope = 0; /* Global scope */
/* common attribute keys, to avoid calling find_key all the times */
static String *empty_string = 0;
static String *k_allowstypedef = 0;
static String *k_cdecl = 0;
static String *k_coloncolon = 0;
@ -184,7 +185,6 @@ static String *k_csymnextSibling = 0;
static String *k_csympreviousSibling = 0;
static String *k_csymtab = 0;
static String *k_decl = 0;
static String *k_empty = 0;
static String *k_enumitem = 0;
static String *k_inherit = 0;
static String *k_name = 0;
@ -236,6 +236,7 @@ Swig_symbol_dump_symtable() {
void
Swig_symbol_init() {
empty_string = NewStringEmpty();
k_allowstypedef = NewString("allows_typedef");
k_cdecl = NewString("cdecl");
k_coloncolon = NewString("::");
@ -244,7 +245,6 @@ Swig_symbol_init() {
k_csympreviousSibling = NewString("csym:previousSibling");
k_csymtab = NewString("csymtab");
k_decl = NewString("decl");
k_empty = NewString("empty");
k_enumitem = NewString("enumitem");
k_inherit = NewString("inherit");
k_name = NewString("name");
@ -281,7 +281,7 @@ Swig_symbol_init() {
/* Set the global scope */
symtabs = NewHash();
Setattr(symtabs,k_empty,current_symtab);
Setattr(symtabs,empty_string,current_symtab);
global_scope = current_symtab;
}
@ -326,7 +326,7 @@ Swig_symbol_getscopename() {
Symtab *
Swig_symbol_getscope(const String_or_char *name) {
if (!symtabs) return 0;
if (StringEqual(k_coloncolon,(String_or_char *)name)) name = k_empty;
if (StringEqual(k_coloncolon,(String_or_char *)name)) name = empty_string;
return Getattr(symtabs,name);
}
@ -350,7 +350,7 @@ Swig_symbol_qualifiedscopename(Symtab *symtab) {
name = HashGetAttr(symtab,k_name);
if (name) {
if (!result) {
result = NewString("");
result = NewStringEmpty();
}
if (StringLen(result)) {
Printv(result,"::",name, NIL);
@ -1023,7 +1023,7 @@ Swig_symbol_clookup(String_or_char *name, Symtab *n) {
if (Swig_scopename_check(name)) {
char *cname = Char(name);
if (strncmp(cname,"::",2) == 0) {
String *nname = NewString(Char(name)+2);
String *nname = NewString(cname+2);
if (Swig_scopename_check(nname)) {
s = symbol_lookup_qualified(nname,global_scope,0,0,0);
}
@ -1094,7 +1094,7 @@ Swig_symbol_clookup_check(String_or_char *name, Symtab *n, int (*checkfunc)(Node
if (Swig_scopename_check(name)) {
char *cname = Char(name);
if (strncmp(cname,"::",2) == 0) {
String *nname = NewString(Char(name)+2);
String *nname = NewString(cname+2);
if (Swig_scopename_check(nname)) {
s = symbol_lookup_qualified(nname,global_scope,0,0,checkfunc);
}
@ -1157,7 +1157,7 @@ Swig_symbol_clookup_local(String_or_char *name, Symtab *n) {
if (Swig_scopename_check(name)) {
char *cname = Char(name);
if (strncmp(cname,"::",2) == 0) {
String *nname = NewString(Char(name)+2);
String *nname = NewString(cname+2);
if (Swig_scopename_check(nname)) {
s = symbol_lookup_qualified(nname,global_scope,0,0,0);
}
@ -1205,7 +1205,7 @@ Swig_symbol_clookup_local_check(String_or_char *name, Symtab *n, int (*checkfunc
if (Swig_scopename_check(name)) {
char *cname = Char(name);
if (strncmp(cname,"::",2) == 0) {
String *nname = NewString(Char(name)+2);
String *nname = NewString(cname+2);
if (Swig_scopename_check(nname)) {
s = symbol_lookup_qualified(nname,global_scope,0,0,checkfunc);
}
@ -1337,7 +1337,7 @@ Swig_symbol_qualified(Node *n) {
} else {
symtab = HashGetAttr(n,k_symsymtab);
}
if (!symtab) return NewString("");
if (!symtab) return NewStringEmpty();
#ifdef SWIG_DEBUG
Printf(stderr,"symbol_qscope %s %x %s\n", HashGetAttr(n,k_name), symtab,HashGetAttr(symtab,k_name));
#endif
@ -1396,7 +1396,7 @@ Swig_symbol_template_qualify(const SwigType *e, Symtab *st) {
StringAppend(qprefix,vparm);
ti = Next(ti);
if (ti.item) {
Putc(',',qprefix);
StringPutc(',',qprefix);
}
Delete(qparm);
Delete(vparm);
@ -1418,7 +1418,7 @@ Swig_symbol_type_qualify(const SwigType *t, Symtab *st) {
String *result;
int i,len;
result = NewString("");
result = NewStringEmpty();
elements = SwigType_split(t);
len = Len(elements);
@ -1450,7 +1450,7 @@ Swig_symbol_type_qualify(const SwigType *t, Symtab *st) {
StringAppend(e,ty);
Delete(ty);
}
if (strncmp(Char(e),"::",2) == 0) {
if (strncmp(StringChar(e),"::",2) == 0) {
Delitem(e,0);
Delitem(e,0);
}
@ -1589,7 +1589,7 @@ SwigType *Swig_symbol_typedef_reduce(SwigType *ty, Symtab *tab) {
{
const char* dclass[3] = {"struct ", "union ", "class "};
int i;
char * c = Char(nt);
char * c = StringChar(nt);
for (i=0; i<3; i++) {
if (strstr(c, dclass[i]) == c) {
Replace(nt,dclass[i],"", DOH_REPLACE_FIRST);
@ -1638,16 +1638,13 @@ SwigType *Swig_symbol_typedef_reduce(SwigType *ty, Symtab *tab) {
String *
Swig_symbol_string_qualify(String *s, Symtab *st) {
char *c;
String *id, *r;
int have_id = 0;
id = NewString("");
r = NewString("");
c = Char(s);
int have_id = 0;
String *id = NewStringEmpty();
String *r = NewStringEmpty();
char *c = StringChar(s);
while (*c) {
if (isalpha((int)*c) || (*c == '_') || (*c == ':')) {
Putc(*c,id);
StringPutc(*c,id);
have_id = 1;
} else {
if (have_id) {
@ -1657,7 +1654,7 @@ Swig_symbol_string_qualify(String *s, Symtab *st) {
Delete(qid);
have_id = 0;
}
Putc(*c,r);
StringPutc(*c,r);
}
c++;
}
@ -1739,7 +1736,7 @@ Swig_symbol_template_defargs(Parm *parms, Parm *targs, Symtab *tscope, Symtab *t
* ----------------------------------------------------------------------------- */
SwigType*
Swig_symbol_template_deftype(const SwigType *type, Symtab *tscope) {
String *result = NewString("");
String *result = NewStringEmpty();
List *elements = SwigType_split(type);
int len = Len(elements);
int i;
@ -1809,7 +1806,7 @@ Swig_symbol_template_deftype(const SwigType *type, Symtab *tscope) {
}
StringAppend(tprefix,ttq);
p = nextSibling(p);
if (p) Putc(',',tprefix);
if (p) StringPutc(',',tprefix);
Delete(ttf);
Delete(ttq);
}

View file

@ -27,7 +27,7 @@ Swig_print_tags(DOH *obj, DOH *root) {
DOH *croot, *newroot;
DOH *cobj;
if (!root) croot = NewString("");
if (!root) croot = NewStringEmpty();
else croot = root;
while (obj) {

View file

@ -416,8 +416,8 @@ Swig_typemap_apply(ParmList *src, ParmList *dest) {
/* Printf(stdout,"apply : %s --> %s\n", ParmList_str(src), ParmList_str(dest)); */
/* Create type signature of source */
ssig = NewString("");
dsig = NewString("");
ssig = NewStringEmpty();
dsig = NewStringEmpty();
p = src;
dp = dest;
lastp = 0;
@ -536,7 +536,7 @@ Swig_typemap_clear_apply(Parm *parms) {
String *name;
/* Create a type signature of the parameters */
tsig = NewString("");
tsig = NewStringEmpty();
p = parms;
lastp = 0;
while (p) {
@ -822,7 +822,7 @@ void typemap_replace_vars(String *s, ParmList *locals, SwigType *type, SwigType
int i;
if (SwigType_array_ndim(type) != SwigType_array_ndim(ftype)) type = ftype;
ndim = SwigType_array_ndim(type);
size = NewString("");
size = NewStringEmpty();
for (i = 0; i < ndim; i++) {
String *dim = SwigType_array_getdim(type,i);
if (index == 1) {
@ -1098,7 +1098,7 @@ static void typemap_locals(DOHString *s, ParmList *l, Wrapper *f, int argnum) {
String *str;
int isglobal = 0;
str = NewString("");
str = NewStringEmpty();
if (Strncmp(pn,"_global_",8) == 0) {
isglobal = 1;
@ -1392,7 +1392,7 @@ Printf(stdout, "Swig_typemap_lookup %s [%s %s]\n", op, type, pname ? pname : "NO
void
Swig_typemap_attach_kwargs(Hash *tm, const String_or_char *op, Parm *p) {
String *temp = NewString("");
String *temp = NewStringEmpty();
Parm *kw = Getattr(tm,k_kwargs);
while (kw) {
String *value = Copy(Getattr(kw,k_value));

View file

@ -564,7 +564,7 @@ SwigType *
SwigType_pop_arrays(SwigType *t) {
String *ta;
assert(SwigType_isarray(t));
ta = NewString("");
ta = NewStringEmpty();
while (SwigType_isarray(t)) {
SwigType *td = SwigType_pop(t);
Append(ta,td);
@ -825,7 +825,7 @@ SwigType_templatesuffix(const SwigType *t) {
}
c++;
}
return NewString("");
return NewStringEmpty();
}
/* -----------------------------------------------------------------------------
@ -969,7 +969,7 @@ SwigType_prefix(const SwigType *t) {
return r;
}
}
return NewString("");
return NewStringEmpty();
}
/* -----------------------------------------------------------------------------
@ -990,7 +990,7 @@ SwigType_strip_qualifiers(SwigType *t) {
if (r) return Copy(r);
l = SwigType_split(t);
r = NewString("");
r = NewStringEmpty();
for (ei = First(l);ei.item; ei = Next(ei)) {
if (SwigType_isqualifier(ei.item)) continue;

View file

@ -120,6 +120,7 @@ static String *k_typetab = 0;
static String *k_inherit = 0;
static String *k_parent = 0;
static String *k_value = 0;
static String *k_nodetype = 0;
/*
Enable this one if your language fully support SwigValueWrapper<T>.
@ -157,6 +158,7 @@ void SwigType_typesystem_init() {
k_inherit = NewString("inherit");
k_parent = NewString("parent");
k_value = NewString("value");
k_nodetype = NewString("nodeType");
if (global_scope) Delete(global_scope);
if (scopes) Delete(scopes);
@ -563,7 +565,7 @@ SwigType *SwigType_typedef_resolve(SwigType *t) {
/*
if (!noscope) {
noscope = NewString("");
noscope = NewStringEmpty();
}
*/
@ -661,7 +663,7 @@ SwigType *SwigType_typedef_resolve(SwigType *t) {
}
}
if (type && (Strcmp(base,type) == 0)) {
if (type && (StringEqual(base,type))) {
if (newtype) Delete(type);
Delete(base);
Delete(namebase);
@ -862,7 +864,7 @@ SwigType *SwigType_typedef_qualified(SwigType *t)
return rc;
}
result = NewString("");
result = NewStringEmpty();
elements = SwigType_split(t);
len = Len(elements);
for (i = 0; i < len; i++) {
@ -943,7 +945,7 @@ SwigType *SwigType_typedef_qualified(SwigType *t)
pi = First(parms);
while ((p = pi.item)) {
String *qt = SwigType_typedef_qualified(p);
if ((Strcmp(qt,p) == 0)) { /* && (!Swig_scopename_check(qt))) */
if (StringEqual(qt,p)) { /* && (!Swig_scopename_check(qt))) */
/* No change in value. It is entirely possible that the parameter is an integer value.
If there is a symbol table associated with this scope, we're going to check for this */
@ -955,7 +957,8 @@ SwigType *SwigType_typedef_qualified(SwigType *t)
if (n == lastnode) break;
lastnode = n;
if (n) {
if (Strcmp(nodeType(n),"enumitem") == 0) {
char *ntype = Char(Getattr(n,k_nodetype));
if (strcmp(ntype,"enumitem") == 0) {
/* An enum item. Generate a fully qualified name */
String *qn = Swig_symbol_qualified(n);
if (Len(qn)) {
@ -968,7 +971,7 @@ SwigType *SwigType_typedef_qualified(SwigType *t)
Delete(qn);
break;
}
} else if ((Strcmp(nodeType(n),"cdecl") == 0) && (Getattr(n,k_value))) {
} else if ((strcmp(ntype,"cdecl") == 0) && (Getattr(n,k_value))) {
Delete(value);
value = Copy(Getattr(n,k_value));
continue;
@ -1851,10 +1854,10 @@ SwigType_emit_type_table(File *f_forward, File *f_table) {
Printf(stdout,"%s\n", r_clientdata);
#endif
table = NewString("");
types = NewString("");
cast = NewString("");
cast_init = NewString("");
table = NewStringEmpty();
types = NewStringEmpty();
cast = NewStringEmpty();
cast_init = NewStringEmpty();
imported_types = NewHash("");
Printf(table,"static swig_type_info *swig_type_initial[] = {\n");
@ -1873,7 +1876,7 @@ SwigType_emit_type_table(File *f_forward, File *f_table) {
String *rn;
const String *cd;
cast_temp = NewString("");
cast_temp = NewStringEmpty();
Printv(types,"static swig_type_info _swigt_", ki.item, " = {", NIL);
Append(table_list, ki.item);

View file

@ -33,9 +33,9 @@ NewWrapper() {
Wrapper *w;
w = (Wrapper *) malloc(sizeof(Wrapper));
w->localh = NewHash();
w->locals = NewString("");
w->code = NewString("");
w->def = NewString("");
w->locals = NewStringEmpty();
w->code = NewStringEmpty();
w->def = NewStringEmpty();
return w;
}
@ -81,7 +81,7 @@ Wrapper_pretty_print(String *str, File *f) {
int plevel = 0;
int label = 0;
ts = NewString("");
ts = NewStringEmpty();
Seek(str,0, SEEK_SET);
Clear(ts);
while ((c = Getc(str)) != EOF) {
@ -219,8 +219,8 @@ Wrapper_compact_print(String *str, File *f) {
int empty = 1;
int indent = 2;
ts = NewString("");
tf = NewString("");
ts = NewStringEmpty();
tf = NewStringEmpty();
Seek(str,0, SEEK_SET);
Clear(ts);
Clear(tf);
@ -392,7 +392,7 @@ void
Wrapper_print(Wrapper *w, File *f) {
String *str;
str = NewString("");
str = NewStringEmpty();
Printf(str,"%s\n", w->def);
Printf(str,"%s\n", w->locals);
Printf(str,"%s\n", w->code);
@ -434,7 +434,7 @@ Wrapper_add_localv(Wrapper *w, const String_or_char *name, ...) {
int ret;
String *decl;
DOH *obj;
decl = NewString("");
decl = NewStringEmpty();
va_start(ap,name);
obj = va_arg(ap,void *);
@ -509,7 +509,7 @@ Wrapper_new_localv(Wrapper *w, const String_or_char *name, ...) {
char *ret;
String *decl;
DOH *obj;
decl = NewString("");
decl = NewStringEmpty();
va_start(ap,name);
obj = va_arg(ap,void *);