unnamed global enum variables support
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5927 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
db8c57a0b5
commit
b6cb23c83e
1 changed files with 12 additions and 2 deletions
|
|
@ -89,7 +89,13 @@ static int varref = 0;
|
|||
String *
|
||||
Swig_wrapped_var_type(SwigType *t) {
|
||||
SwigType *ty;
|
||||
ty = Copy(t);
|
||||
|
||||
if (!Strstr(t,"enum $unnamed")) {
|
||||
ty = Copy(t);
|
||||
} else {
|
||||
/* Change the type for unnamed enum instance variables */
|
||||
ty = NewString("int");
|
||||
}
|
||||
|
||||
if (SwigType_isclass(t)) {
|
||||
if (varref) {
|
||||
|
|
@ -1092,7 +1098,11 @@ Swig_VarsetToFunction(Node *n) {
|
|||
parms = NewParm(ty,"value");
|
||||
Delete(ty);
|
||||
|
||||
Setattr(n,"wrap:action", NewStringf("%s = %s;\n", nname, Swig_wrapped_var_deref(type,Swig_cparm_name(0,0))));
|
||||
if (!Strstr(type,"enum $unnamed")) {
|
||||
Setattr(n,"wrap:action", NewStringf("%s = %s;\n", nname, Swig_wrapped_var_deref(type,Swig_cparm_name(0,0))));
|
||||
} else {
|
||||
Setattr(n,"wrap:action", NewStringf("if (sizeof(int) == sizeof(%s)) *(int*)(void*)&(%s) = %s;\n", nname, nname, Swig_cparm_name(0,0)));
|
||||
}
|
||||
Setattr(n,"type","void");
|
||||
Setattr(n,"parms",parms);
|
||||
Delete(parms);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue