Javascript: support null pointers.
We allow to set pointer types using JS null.
This commit is contained in:
parent
d5ea32d760
commit
3f0f588891
3 changed files with 32 additions and 7 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue