void AwaStringArray_SetValueAsCString(AwaStringArray * array, AwaArrayIndex index, const char * value) { if (array != NULL) { AwaArray * nulledStrings = AwaArray_GetContext((AwaArray *)array); if (nulledStrings != NULL) { Array_SetValue((AwaArray *)nulledStrings, index, (void *)value, strlen(value) + 1); } Array_SetValue((AwaArray *)array, index, (void *)value, strlen(value)); } }
const char * AwaStringArray_GetValueAsCString(const AwaStringArray * array, AwaArrayIndex index) { char * value = NULL; if (array != NULL) { AwaArray * nulledStrings = AwaArray_GetContext((AwaArray *)array); if (nulledStrings != NULL) { value = Array_GetValue((const AwaArray *)nulledStrings, index); if (value == NULL) { const char * nonNulledValue = Array_GetValue((AwaArray *)array, index); int nonNulledLength = Array_GetValueLength((AwaArray *)array, index); char * nulledValue = (char *)malloc(nonNulledLength + 1); if ((nonNulledValue != NULL) && (nulledValue != NULL) && (nonNulledLength >= 0)) { memcpy(nulledValue, nonNulledValue, (size_t)nonNulledLength); nulledValue[nonNulledLength] = '\0'; Array_SetValue(nulledStrings, index, nulledValue, nonNulledLength + 1); free(nulledValue); value = Array_GetValue((const AwaArray *)nulledStrings, index); } else { free(nulledValue); } } } } return value; }
void AwaObjectLinkArray_SetValue(AwaObjectLinkArray * array, AwaArrayIndex index, AwaObjectLink value) { Array_SetValue((AwaArray *)array, index, (void *)&value, sizeof(AwaObjectLink)); }
void AwaFloatArray_SetValue(AwaFloatArray * array, AwaArrayIndex index, AwaFloat value) { Array_SetValue((AwaArray *)array, index, (void *)&value, sizeof(AwaFloat)); }