Make JSC inheritance definition more robust.

This commit is contained in:
Oliver Buchtala 2013-09-16 02:27:51 +02:00
commit 80ce36c445
2 changed files with 26 additions and 6 deletions

View file

@ -394,11 +394,24 @@ JSStaticFunction $jsmangledname_functions[] = {
$jsmangledname_classDefinition.finalize = $jsdtor;
$jsmangledname_objectDefinition.staticValues = $jsmangledname_values;
$jsmangledname_objectDefinition.staticFunctions = $jsmangledname_functions;
$jsmangledname_objectDefinition.parentClass = $jsbaseclass_classRef;
$jsclass_inheritance
JSClassRef $jsmangledname_classRef = JSClassCreate(&$jsmangledname_objectDefinition);
SWIGTYPE_$jsmangledtype->clientdata = $jsmangledname_classRef;
%}
%fragment ("jsc_class_inherit", templates)
%{
if (SWIGTYPE_p$jsbaseclassmangled != NULL) {
$jsmangledname_objectDefinition.parentClass = (JSClassRef) SWIGTYPE_p$jsbaseclassmangled->clientdata;
}
%}
%fragment ("jsc_class_noinherit", templates)
%{
$jsmangledname_objectDefinition.parentClass = _SwigObject_classRef;
%}
/* -----------------------------------------------------------------------------
* jsc_register_class: template for registration of a class
* - $jsname: class name