@@ -75,22 +75,40 @@ int ModuleManagerLibraryHandler::isDeviceTypeSupported(unsigned int device_type)
7575int ModuleManagerLibraryHandler::sendStatusCondition (const Buffer current_status,
7676 const Buffer new_status,
7777 unsigned int device_type) {
78- return sendStatusCondition_ (current_status.getStructBuffer (), new_status.getStructBuffer (), device_type);
78+ struct ::buffer current_status_raw_buffer {};
79+ struct ::buffer new_status_raw_buffer {};
80+
81+ if (current_status.isAllocated ()) {
82+ current_status_raw_buffer = current_status.getStructBuffer ();
83+ }
84+ if (new_status.isAllocated ()) {
85+ new_status_raw_buffer = new_status.getStructBuffer ();
86+ }
87+
88+ return sendStatusCondition_ (current_status_raw_buffer, new_status_raw_buffer, device_type);
7989}
8090
8191int ModuleManagerLibraryHandler::generateCommand (Buffer &generated_command,
8292 const Buffer new_status,
8393 const Buffer current_status,
8494 const Buffer current_command, unsigned int device_type) {
8595 struct ::buffer raw_buffer {};
96+ struct ::buffer new_status_raw_buffer {};
8697 struct ::buffer current_status_raw_buffer {};
98+ struct ::buffer current_command_raw_buffer {};
8799
100+ if (new_status.isAllocated ()) {
101+ new_status_raw_buffer = new_status.getStructBuffer ();
102+ }
88103 if (current_status.isAllocated ()) {
89104 current_status_raw_buffer = current_status.getStructBuffer ();
90105 }
106+ if (current_command.isAllocated ()) {
107+ current_command_raw_buffer = current_command.getStructBuffer ();
108+ }
91109
92- int ret = generateCommand_ (&raw_buffer, new_status. getStructBuffer () ,
93- current_status_raw_buffer, current_command. getStructBuffer () , device_type);
110+ int ret = generateCommand_ (&raw_buffer, new_status_raw_buffer ,
111+ current_status_raw_buffer, current_command_raw_buffer , device_type);
94112 if (ret == OK) {
95113 generated_command = constructBufferByTakeOwnership (raw_buffer);
96114 } else {
@@ -104,12 +122,16 @@ int ModuleManagerLibraryHandler::aggregateStatus(Buffer &aggregated_status,
104122 const Buffer new_status, unsigned int device_type) {
105123 struct ::buffer raw_buffer {};
106124 struct ::buffer current_status_raw_buffer {};
125+ struct ::buffer new_status_raw_buffer {};
107126
108127 if (current_status.isAllocated ()) {
109128 current_status_raw_buffer = current_status.getStructBuffer ();
110129 }
130+ if (new_status.isAllocated ()) {
131+ new_status_raw_buffer = new_status.getStructBuffer ();
132+ }
111133
112- int ret = aggregateStatus_ (&raw_buffer, current_status_raw_buffer, new_status. getStructBuffer () , device_type);
134+ int ret = aggregateStatus_ (&raw_buffer, current_status_raw_buffer, new_status_raw_buffer , device_type);
113135 if (ret == OK) {
114136 aggregated_status = constructBufferByTakeOwnership (raw_buffer);
115137 } else {
@@ -124,12 +146,16 @@ int ModuleManagerLibraryHandler::aggregateError(Buffer &error_message,
124146
125147 struct ::buffer raw_buffer {};
126148 struct ::buffer current_error_raw_buffer {};
149+ struct ::buffer status_raw_buffer {};
127150
128151 if (current_error_message.isAllocated ()) {
129152 current_error_raw_buffer = current_error_message.getStructBuffer ();
130153 }
154+ if (status.isAllocated ()) {
155+ status_raw_buffer = status.getStructBuffer ();
156+ }
131157
132- int ret = aggregateError_ (&raw_buffer, current_error_raw_buffer, status. getStructBuffer () , device_type);
158+ int ret = aggregateError_ (&raw_buffer, current_error_raw_buffer, status_raw_buffer , device_type);
133159 if (ret == OK) {
134160 error_message = constructBufferByTakeOwnership (raw_buffer);
135161 } else {
@@ -150,11 +176,19 @@ int ModuleManagerLibraryHandler::generateFirstCommand(Buffer &default_command, u
150176}
151177
152178int ModuleManagerLibraryHandler::statusDataValid (const Buffer status, unsigned int device_type) {
153- return statusDataValid_ (status.getStructBuffer (), device_type);
179+ struct ::buffer raw_buffer {};
180+ if (status.isAllocated ()) {
181+ raw_buffer = status.getStructBuffer ();
182+ }
183+ return statusDataValid_ (raw_buffer, device_type);
154184}
155185
156186int ModuleManagerLibraryHandler::commandDataValid (const Buffer command, unsigned int device_type) {
157- return commandDataValid_ (command.getStructBuffer (), device_type);
187+ struct ::buffer raw_buffer {};
188+ if (command.isAllocated ()) {
189+ raw_buffer = command.getStructBuffer ();
190+ }
191+ return commandDataValid_ (raw_buffer, device_type);
158192}
159193
160194int ModuleManagerLibraryHandler::allocate (struct buffer *buffer_pointer, size_t size_in_bytes){
0 commit comments