diff --git a/core/logic/NativeOwner.cpp b/core/logic/NativeOwner.cpp index a4b092e6..85ea6df3 100644 --- a/core/logic/NativeOwner.cpp +++ b/core/logic/NativeOwner.cpp @@ -73,7 +73,7 @@ void CNativeOwner::UnbindWeakRef(const WeakNative &ref) pContext->GetRuntime()->UpdateNativeBinding( ref.idx, nullptr, - 0, + SP_NTVFLAG_OPTIONAL, nullptr); } diff --git a/core/logic/ShareSys.cpp b/core/logic/ShareSys.cpp index 1786ae7c..b172c8b5 100644 --- a/core/logic/ShareSys.cpp +++ b/core/logic/ShareSys.cpp @@ -341,6 +341,8 @@ void ShareSystem::BindNativeToPlugin(CPlugin *pPlugin, const sp_native_t *native /* The native is optional, this is a special case */ if ((native->flags & SP_NTVFLAG_OPTIONAL) == SP_NTVFLAG_OPTIONAL) { + flags |= SP_NTVFLAG_OPTIONAL; + /* Only add if there is a valid owner. */ if (!pEntry->owner) return;