Javascript: support null pointers.

We allow to set pointer types using JS null.
This commit is contained in:
Oliver Buchtala 2014-05-19 00:21:21 +02:00
commit 3f0f588891
3 changed files with 32 additions and 7 deletions

View file

@ -99,7 +99,9 @@ SWIGRUNTIME JSClassRef _SwigObject_classRef;
SWIGRUNTIME int SWIG_JSC_ConvertInstancePtr(JSContextRef context, JSObjectRef objRef, void** ptr, swig_type_info *info, int flags) {
SwigPrivData *cdata = (SwigPrivData *) JSObjectGetPrivate(objRef);
SwigPrivData *cdata;
cdata = (SwigPrivData *) JSObjectGetPrivate(objRef);
if(cdata == NULL) {
return SWIG_ERROR;
}
@ -135,7 +137,7 @@ SWIGRUNTIME int SWIG_JSC_ConvertPtr(JSContextRef context, JSValueRef valRef, voi
*ptr=0;
return SWIG_OK;
}
if(!JSValueIsObject(context, valRef)) {
return SWIG_TypeError;
}
@ -149,17 +151,23 @@ SWIGRUNTIME int SWIG_JSC_ConvertPtr(JSContextRef context, JSValueRef valRef, voi
}
SWIGRUNTIME JSObjectRef SWIG_JSC_NewPointerObj(JSContextRef context, void *ptr, swig_type_info *info, int flags) {
JSClassRef classRef;
JSObjectRef result;
SwigPrivData *cdata;
if (ptr == NULL) {
return JSValueToObject(context, JSValueMakeNull(context), 0);
}
if(info->clientdata == NULL) {
classRef = _SwigObject_classRef;
} else {
classRef = (JSClassRef) info->clientdata;
}
JSObjectRef result = JSObjectMake(context, classRef, NULL);
result = JSObjectMake(context, classRef, NULL);
SwigPrivData* cdata = (SwigPrivData*) malloc(sizeof(SwigPrivData));
cdata = (SwigPrivData*) malloc(sizeof(SwigPrivData));
cdata->swigCObject = ptr;
cdata->swigCMemOwn = (flags & SWIG_POINTER_OWN) ? 1 : 0;
cdata->info = info;