Make chicken module correctly calculate the get/set functions by using Swig_name_get

Fix a few compiler warnings in chickenrun.swg


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7800 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
John Lenz 2005-11-04 19:23:19 +00:00
commit f83457423d
2 changed files with 15 additions and 5 deletions

View file

@ -351,15 +351,17 @@ static C_word SWIG_Chicken_MultiResultBuild(C_word num, C_word closure, C_word l
SWIG_Chicken_FindCreateProxy(func,obj);
if (C_swig_is_closurep(func)) {
((C_proc3)(void *)C_block_item(func, 0))(4,func,cont,obj,lst);
((C_proc4)(void *)C_block_item(func, 0))(4,func,cont,obj,lst);
} else {
C_word *a = C_alloc(C_SIZEOF_PAIR);
C_kontinue(cont,C_pair(&a,obj,lst));
}
return C_SCHEME_UNDEFINED; /* never reached */
}
static C_word SWIG_Chicken_ApplyResults(C_word num, C_word closure, C_word result) {
C_apply_values(3,C_SCHEME_UNDEFINED,C_block_item(closure,1),result);
return C_SCHEME_UNDEFINED; /* never reached */
}
#ifdef __cplusplus

View file

@ -63,6 +63,7 @@ static int clos_uses = 1;
/* C++ Support + Clos Classes */
static int clos = 0;
static String *c_class_name = 0;
static String *class_name = 0;
static String *short_class_name = 0;
@ -1048,10 +1049,11 @@ CHICKEN::classHandler(Node *n)
constructor_dispatch = 0;
constructor_name = 0;
c_class_name = NewString(Getattr(n,"sym:name"));
class_name = NewString("");
short_class_name = NewString("");
Printv(class_name, "<", Getattr(n,"sym:name"), ">", NIL);
Printv(short_class_name, Getattr(n,"sym:name"), NIL);
Printv(class_name, "<", c_class_name, ">", NIL);
Printv(short_class_name, c_class_name, NIL);
Replaceall(class_name, "_", "-");
Replaceall(short_class_name, "_", "-");
@ -1163,8 +1165,10 @@ CHICKEN::classHandler(Node *n)
Delete(class_name);
Delete(short_class_name);
Delete(c_class_name);
class_name = 0;
short_class_name = 0;
c_class_name = 0;
return SWIG_OK;
}
@ -1215,8 +1219,12 @@ CHICKEN::membervariableHandler(Node *n)
//Node *class_node = Swig_symbol_clookup(pb, Getattr(n, "sym:symtab"));
Node *class_node = classLookup(Getattr(n, "type"));
String *getfunc = NewStringf("%s-%s-get", short_class_name, proc);
String *setfunc = NewStringf("%s-%s-set", short_class_name, proc);
//String *getfunc = NewStringf("%s-%s-get", short_class_name, proc);
//String *setfunc = NewStringf("%s-%s-set", short_class_name, proc);
String *getfunc = Swig_name_get(Swig_name_member(c_class_name, iname));
Replaceall(getfunc, "_","-");
String *setfunc = Swig_name_set(Swig_name_member(c_class_name, iname));
Replaceall(setfunc, "_","-");
Printv(clos_class_defines," (list '", proc, " ':swig-virtual ':swig-get ", chickenPrimitiveName(getfunc), NIL);