| 1081 CxJsonValue *cxJsonArrRemove(CxJsonValue *value, size_t index) { |
1081 CxJsonValue *cxJsonArrRemove(CxJsonValue *value, size_t index) { |
| 1082 if (index >= value->array.size) { |
1082 if (index >= value->array.size) { |
| 1083 return NULL; |
1083 return NULL; |
| 1084 } |
1084 } |
| 1085 CxJsonValue *ret = value->array.data[index]; |
1085 CxJsonValue *ret = value->array.data[index]; |
| 1086 // TODO: replace with a low level cx_array_remove() |
1086 cx_array_remove(value->array, index); |
| 1087 size_t count = value->array.size - index - 1; |
|
| 1088 if (count > 0) { |
|
| 1089 memmove(value->array.data + index, value->array.data + index + 1, count * sizeof(CxJsonValue*)); |
|
| 1090 } |
|
| 1091 value->array.size--; |
|
| 1092 return ret; |
1087 return ret; |
| 1093 } |
1088 } |
| 1094 |
1089 |
| 1095 char *cxJsonAsString(const CxJsonValue *value) { |
1090 char *cxJsonAsString(const CxJsonValue *value) { |
| 1096 return value->string.ptr; |
1091 return value->string.ptr; |