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; }
AwaFloat AwaFloatArray_GetValue(const AwaFloatArray * array, AwaArrayIndex index) { AwaFloat value = 0; AwaFloat * valuePtr = NULL; valuePtr = Array_GetValue((AwaArray *)array, index); if (valuePtr != NULL) { value = *valuePtr; } return value; }
AwaObjectLink AwaObjectLinkArray_GetValue(const AwaObjectLinkArray * array, AwaArrayIndex index) { AwaObjectLink value; void * valuePtr; memset(&value, 0, sizeof(AwaObjectLink)); valuePtr = Array_GetValue((const AwaArray *)array, index); if (valuePtr != NULL) { memcpy(&value, valuePtr, sizeof(AwaObjectLink)); } return value; }