Murata RF modules are designed to simplify wireless development and certification by minimizing the amount of RF expertise you need to wirelessly enable a wide range of applications.

Revision:
2:f8e393a81c25
Parent:
0:8e83b9448758
Child:
4:7388451219ee
--- a/Payload.cpp	Wed Feb 04 18:10:30 2015 +0000
+++ b/Payload.cpp	Wed Feb 04 20:37:40 2015 +0000
@@ -15,7 +15,7 @@
     this->position = payload->position;
 }
 
-const char * Payload::GetData()
+char * Payload::GetData()
 {
     return data;
 }
@@ -79,7 +79,7 @@
         return;
 
     if (length > max) {
-        delete data;
+        delete[] data;
         data = new char[length];
     }
 
@@ -94,9 +94,9 @@
 void Payload::SetContent(const char value)
 {
     if (position >= max) {
-        char temp[max + EXPANDSIZE];
+        char * temp = new char[max + EXPANDSIZE];
         memcpy(temp, data, position);
-        delete data;
+        delete[] data;
         data = temp;
     }
 
@@ -105,14 +105,17 @@
 
 void Payload::SetContent(const char * value, const int offset, const int length)
 {
-    if (position + length - offset>= max) {
+    if (length <= 0)
+        return;
+
+    if (position + length >= max) {
         max += EXPANDSIZE * (1 + length / EXPANDSIZE);
-        char temp[max];
+        char * temp = new char[max];
         memcpy(temp, data, position);
-        delete data;
+        delete[] data;
         data = temp;
     }
 
-    memcpy(data + position, value, length);
+    memcpy(data + position, value + offset, length);
     position += length;
 }
\ No newline at end of file