Chicken: multiple_inheritance test now passes, and we correctly handle %ignored classes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@7683 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
ac9ed4789f
commit
464ae5b1b0
3 changed files with 39 additions and 9 deletions
|
|
@ -1,6 +1,22 @@
|
||||||
Version 1.3.27 (October 15, 2005)
|
Version 1.3.27 (October 15, 2005)
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
|
10/18/2005: wuzzeb
|
||||||
|
Chicken:
|
||||||
|
- Correctly handle %ignored classes
|
||||||
|
- Correctly convert long, long long, unsigned long, etc
|
||||||
|
to chicken primitives. (Thanks to Felix Winkelmann)
|
||||||
|
- Using argout parameters when the return value was a
|
||||||
|
wrapped pointer caused a memory corruption. The chicken
|
||||||
|
garbage collector moved a pointer out from under us.
|
||||||
|
This is now fixed by running all the proxy creation
|
||||||
|
functions as continuations after the wrapper function
|
||||||
|
returns. As part of this, we no longer need the
|
||||||
|
chickenfastproxy flag on output typemaps.
|
||||||
|
- using -proxy and -nocollection together works now
|
||||||
|
Before, it was not exporting the destructor in the proxy
|
||||||
|
wrapper.
|
||||||
|
|
||||||
10/18/2005: mmatus
|
10/18/2005: mmatus
|
||||||
|
|
||||||
Unifying the typemaps for
|
Unifying the typemaps for
|
||||||
|
|
|
||||||
|
|
@ -12,4 +12,20 @@
|
||||||
(check (= (foo fb) 2))
|
(check (= (foo fb) 2))
|
||||||
(check (= (fooBar fb) 3))
|
(check (= (fooBar fb) 3))
|
||||||
|
|
||||||
|
(define id1 (make <IgnoreDerived1>))
|
||||||
|
(check (= (bar id1) 1))
|
||||||
|
(check (= (ignorederived1 id1) 7))
|
||||||
|
|
||||||
|
(define id2 (make <IgnoreDerived2>))
|
||||||
|
(check (= (bar id2) 1))
|
||||||
|
(check (= (ignorederived2 id2) 8))
|
||||||
|
|
||||||
|
(define id3 (make <IgnoreDerived3>))
|
||||||
|
(check (= (bar id3) 1))
|
||||||
|
(check (= (ignorederived3 id3) 9))
|
||||||
|
|
||||||
|
(define id4 (make <IgnoreDerived4>))
|
||||||
|
(check (= (bar id4) 1))
|
||||||
|
(check (= (ignorederived4 id4) 10))
|
||||||
|
|
||||||
(exit 0)
|
(exit 0)
|
||||||
|
|
|
||||||
|
|
@ -1058,19 +1058,17 @@ CHICKEN::classHandler(Node *n)
|
||||||
if (!addSymbol(class_name,n)) return SWIG_ERROR;
|
if (!addSymbol(class_name,n)) return SWIG_ERROR;
|
||||||
|
|
||||||
/* Handle inheritance */
|
/* Handle inheritance */
|
||||||
String *base_class = NewString("<");
|
String *base_class = NewString("");
|
||||||
List *baselist = Getattr(n,"bases");
|
List *baselist = Getattr(n,"bases");
|
||||||
if (baselist && Len(baselist)) {
|
if (baselist && Len(baselist)) {
|
||||||
Iterator base = First(baselist);
|
Iterator base = First(baselist);
|
||||||
while (base.item) {
|
while (base.item) {
|
||||||
Printv(base_class, Getattr(base.item, "sym:name"),NIL);
|
if (!Getattr(base.item, "feature:ignore"))
|
||||||
base = Next(base);
|
Printv(base_class, "<", Getattr(base.item, "sym:name"), "> ", NIL);
|
||||||
if (base.item) {
|
base = Next(base);
|
||||||
Printf(base_class, "> <");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Printf(base_class, ">");
|
}
|
||||||
|
|
||||||
Replaceall(base_class, "_", "-");
|
Replaceall(base_class, "_", "-");
|
||||||
|
|
||||||
String *scmmod = NewString(module);
|
String *scmmod = NewString(module);
|
||||||
|
|
@ -1080,7 +1078,7 @@ CHICKEN::classHandler(Node *n)
|
||||||
" (make <swig-metaclass-", scmmod, "> 'name \"", short_class_name, "\"\n", NIL);
|
" (make <swig-metaclass-", scmmod, "> 'name \"", short_class_name, "\"\n", NIL);
|
||||||
Delete(scmmod);
|
Delete(scmmod);
|
||||||
|
|
||||||
if (Len(base_class) > 2) {
|
if (Len(base_class)) {
|
||||||
Printv(clos_class_defines," 'direct-supers (list ", base_class, ")\n", NIL);
|
Printv(clos_class_defines," 'direct-supers (list ", base_class, ")\n", NIL);
|
||||||
} else {
|
} else {
|
||||||
Printv(clos_class_defines," 'direct-supers (list <object>)\n", NIL);
|
Printv(clos_class_defines," 'direct-supers (list <object>)\n", NIL);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue