瀏覽代碼

Fixed invalid call to instantiation callback _after_ the added object ID had been deleted.

ichrispa 8 年之前
父節點
當前提交
9e7b824fae
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      src/server/ua_services_nodemanagement.c

+ 3 - 2
src/server/ua_services_nodemanagement.c

@@ -78,11 +78,12 @@ copyExistingVariable(UA_Server *server, UA_Session *session, const UA_NodeId *va
     }
     retval = copyChildNodesToNode(server, session, &node->nodeId,
                                   &res.addedNodeId, instantiationCallback);
-    UA_NodeId_deleteMembers(&res.addedNodeId);
+    
     if(retval == UA_STATUSCODE_GOOD && instantiationCallback)
         instantiationCallback->method(res.addedNodeId, node->nodeId,
                                       instantiationCallback->handle);
-
+    
+    UA_NodeId_deleteMembers(&res.addedNodeId);
  cleanup:
     if(value.hasValue && value.value.storageType == UA_VARIANT_DATA)
         UA_Variant_deleteMembers(&value.value);