소스 검색

copy response variant instead of merely pointing

Julius Pfrommer 10 년 전
부모
커밋
37295bc464
1개의 변경된 파일3개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 2
      src/ua_services_attribute.c

+ 3 - 2
src/ua_services_attribute.c

@@ -140,8 +140,9 @@ static UA_DataValue service_read_node(Application *app, const UA_ReadValueId *id
 		CHECK_NODECLASS(UA_NODECLASS_VARIABLE);
 		CHECK_NODECLASS(UA_NODECLASS_VARIABLE);
 		v.encodingMask = UA_DATAVALUE_ENCODINGMASK_VARIANT;
 		v.encodingMask = UA_DATAVALUE_ENCODINGMASK_VARIANT;
 		// TODO: Ensure that the borrowed value is not freed prematurely (multithreading)
 		// TODO: Ensure that the borrowed value is not freed prematurely (multithreading)
-		retval |= UA_Variant_borrowSetValue(&v.value, &UA_.types[UA_VARIANT],
-		                                    &((UA_VariableNode *)node)->value);
+		/* retval |= UA_Variant_borrowSetValue(&v.value, &UA_.types[UA_VARIANT], */
+		/*                                     &((UA_VariableNode *)node)->value); */
+		retval |= UA_Variant_copy(&((UA_VariableNode *)node)->value, &v.value);
 		break;
 		break;
 
 
 	case UA_ATTRIBUTEID_DATATYPE:
 	case UA_ATTRIBUTEID_DATATYPE: