Browse Source

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

ichrispa 8 years ago
parent
commit
9e7b824fae
1 changed files with 3 additions and 2 deletions
  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);