- static class member functions now get exported with -proxy.
- member variables of other classes now works properly in goops. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6862 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
6737de7198
commit
b59e4a85a4
1 changed files with 20 additions and 3 deletions
|
|
@ -80,7 +80,8 @@ public:
|
||||||
virtual int membervariableHandler(Node *n);
|
virtual int membervariableHandler(Node *n);
|
||||||
virtual int constructorHandler(Node *n);
|
virtual int constructorHandler(Node *n);
|
||||||
virtual int validIdentifier(String *s);
|
virtual int validIdentifier(String *s);
|
||||||
virtual int staticmembervariableHandler(Node *n);
|
virtual int staticmembervariableHandler(Node *n);
|
||||||
|
virtual int staticmemberfunctionHandler(Node *n);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void addMethod(String *scheme_name, String *function);
|
void addMethod(String *scheme_name, String *function);
|
||||||
|
|
@ -1042,6 +1043,22 @@ CHICKEN::memberfunctionHandler(Node *n)
|
||||||
return SWIG_OK;
|
return SWIG_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
CHICKEN::staticmemberfunctionHandler(Node *n)
|
||||||
|
{
|
||||||
|
String *iname = Getattr(n, "sym:name");
|
||||||
|
String *proc = NewString(iname);
|
||||||
|
Replaceall(proc, "_", "-");
|
||||||
|
|
||||||
|
memberfunction_name = chickenNameMapping(proc, short_class_name);
|
||||||
|
Language::staticmemberfunctionHandler(n);
|
||||||
|
Delete(memberfunction_name);
|
||||||
|
memberfunction_name = NULL;
|
||||||
|
Delete(proc);
|
||||||
|
|
||||||
|
return SWIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
CHICKEN::membervariableHandler(Node *n)
|
CHICKEN::membervariableHandler(Node *n)
|
||||||
{
|
{
|
||||||
|
|
@ -1063,7 +1080,7 @@ CHICKEN::membervariableHandler(Node *n)
|
||||||
|
|
||||||
if (!Getattr(n,"feature:immutable")) {
|
if (!Getattr(n,"feature:immutable")) {
|
||||||
if (closclassname) {
|
if (closclassname) {
|
||||||
Printv(closcode, " ':swig-set (lambda (x y) (", chickenPrimitiveName(setfunc), " x (slot-ref y 'swig-this))\n", NIL);
|
Printv(closcode, " ':swig-set (lambda (x y) (", chickenPrimitiveName(setfunc), " x (slot-ref y 'swig-this))))\n", NIL);
|
||||||
} else {
|
} else {
|
||||||
Printv(closcode, " ':swig-set ", chickenPrimitiveName(setfunc), ")\n", NIL);
|
Printv(closcode, " ':swig-set ", chickenPrimitiveName(setfunc), ")\n", NIL);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue