@@ -159,29 +159,24 @@ namespace commandbuffers
159159 , dataSize(srcSize)
160160 , usage(usage)
161161 {
162- if (srcData = = nullptr )
162+ if (srcSize > 0 && srcData ! = nullptr )
163163 {
164- dataSize = 0 ;
165- }
166- else if (srcSize > 0 )
167- {
168- data = malloc (srcSize);
169- if (data != nullptr )
170- memcpy (data, srcData, srcSize);
164+ this ->data = malloc (srcSize);
165+ if (this ->data != nullptr )
166+ memcpy (this ->data , srcData, srcSize);
171167 }
172168 }
173169 BufferDataCommandBufferRequest (const BufferDataCommandBufferRequest &that, bool clone = false )
174170 : TrCommandBufferSimpleRequest(that, clone)
175171 , target(that.target)
176- , dataSize(0 )
172+ , dataSize(that.dataSize )
177173 , data(nullptr )
178174 , usage(that.usage)
179175 {
180176 if (clone == true && that.data != nullptr )
181177 {
182- dataSize = that.dataSize ;
183- data = malloc (dataSize);
184- memcpy (data, that.data , dataSize);
178+ this ->data = malloc (dataSize);
179+ memcpy (this ->data , that.data , dataSize);
185180 }
186181 }
187182 ~BufferDataCommandBufferRequest ()
@@ -197,16 +192,19 @@ namespace commandbuffers
197192 TrCommandBufferMessage *serialize () override
198193 {
199194 auto message = new TrCommandBufferMessage (type, size, this );
200- message->addRawSegment (dataSize, data);
195+ if (dataSize > 0 && data != nullptr )
196+ message->addRawSegment (dataSize, data);
201197 return message;
202198 }
203199 void deserialize (TrCommandBufferMessage &message) override
204200 {
205201 auto dataSegment = message.getSegment (0 );
206- auto dataSize = dataSegment->getSize ();
207- this ->dataSize = dataSize;
208- this ->data = malloc (dataSize);
209- memcpy (this ->data , dataSegment->getData (), dataSize);
202+ if (dataSegment != nullptr )
203+ {
204+ this ->dataSize = dataSegment->getSize ();
205+ this ->data = malloc (this ->dataSize );
206+ memcpy (this ->data , dataSegment->getData (), this ->dataSize );
207+ }
210208 }
211209 std::string toString (const char *line_prefix) const override
212210 {
0 commit comments