CFFI - Fix seg faults when for %extend and using statements
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11136 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
531c4454b8
commit
3d05f50eab
2 changed files with 9 additions and 6 deletions
|
|
@ -1,6 +1,9 @@
|
||||||
Version 1.3.39 (in progress)
|
Version 1.3.39 (in progress)
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
2008-02-20: wsfulton
|
||||||
|
[CFFI] Fix seg faults when for %extend and using statements.
|
||||||
|
|
||||||
2008-02-20: wsfulton
|
2008-02-20: wsfulton
|
||||||
Fix SF #2605955: -co option which broke in 1.3.37.
|
Fix SF #2605955: -co option which broke in 1.3.37.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -245,7 +245,7 @@ void CFFI::emit_defmethod(Node *n) {
|
||||||
|
|
||||||
ParmList *pl = Getattr(n, "parms");
|
ParmList *pl = Getattr(n, "parms");
|
||||||
int argnum = 0;
|
int argnum = 0;
|
||||||
Node *parent = parentNode(n);
|
Node *parent = getCurrentClass();
|
||||||
bool first = 0;
|
bool first = 0;
|
||||||
|
|
||||||
for (Parm *p = pl; p; p = nextSibling(p), argnum++) {
|
for (Parm *p = pl; p; p = nextSibling(p), argnum++) {
|
||||||
|
|
@ -300,7 +300,7 @@ void CFFI::emit_initialize_instance(Node *n) {
|
||||||
|
|
||||||
ParmList *pl = Getattr(n, "parms");
|
ParmList *pl = Getattr(n, "parms");
|
||||||
int argnum = 0;
|
int argnum = 0;
|
||||||
Node *parent = parentNode(n);
|
Node *parent = getCurrentClass();
|
||||||
|
|
||||||
for (Parm *p = pl; p; p = nextSibling(p), argnum++) {
|
for (Parm *p = pl; p; p = nextSibling(p), argnum++) {
|
||||||
String *argname = Getattr(p, "name");
|
String *argname = Getattr(p, "name");
|
||||||
|
|
@ -337,18 +337,18 @@ void CFFI::emit_initialize_instance(Node *n) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFFI::emit_setter(Node *n) {
|
void CFFI::emit_setter(Node *n) {
|
||||||
Node *p = parentNode(n);
|
Node *parent = getCurrentClass();
|
||||||
Printf(f_clos, "(cl:defmethod (cl:setf %s) (arg0 (obj %s))\n (%s (ff-pointer obj) arg0))\n\n",
|
Printf(f_clos, "(cl:defmethod (cl:setf %s) (arg0 (obj %s))\n (%s (ff-pointer obj) arg0))\n\n",
|
||||||
lispify_name(n, Getattr(n, "name"), "'method"),
|
lispify_name(n, Getattr(n, "name"), "'method"),
|
||||||
lispify_name(p, lispy_name(Char(Getattr(p, "sym:name"))), "'class"), lispify_name(n, Getattr(n, "sym:name"), "'function"));
|
lispify_name(parent, lispy_name(Char(Getattr(parent, "sym:name"))), "'class"), lispify_name(n, Getattr(n, "sym:name"), "'function"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CFFI::emit_getter(Node *n) {
|
void CFFI::emit_getter(Node *n) {
|
||||||
Node *p = parentNode(n);
|
Node *parent = getCurrentClass();
|
||||||
Printf(f_clos, "(cl:defmethod %s ((obj %s))\n (%s (ff-pointer obj)))\n\n",
|
Printf(f_clos, "(cl:defmethod %s ((obj %s))\n (%s (ff-pointer obj)))\n\n",
|
||||||
lispify_name(n, Getattr(n, "name"), "'method"),
|
lispify_name(n, Getattr(n, "name"), "'method"),
|
||||||
lispify_name(p, lispy_name(Char(Getattr(p, "sym:name"))), "'class"), lispify_name(n, Getattr(n, "sym:name"), "'function"));
|
lispify_name(parent, lispy_name(Char(Getattr(parent, "sym:name"))), "'class"), lispify_name(n, Getattr(n, "sym:name"), "'function"));
|
||||||
}
|
}
|
||||||
|
|
||||||
int CFFI::memberfunctionHandler(Node *n) {
|
int CFFI::memberfunctionHandler(Node *n) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue