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:
parent
5b03530f25
commit
cf1585fef7
24 changed files with 253 additions and 218 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,", ");
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ NewSwigScanner() {
|
|||
s->yylen = 0;
|
||||
s->idstart = "";
|
||||
s->scanobjs = NewList();
|
||||
s->text = NewString("");
|
||||
s->text = NewStringEmpty();
|
||||
s->str = 0;
|
||||
return s;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 *);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue