|
|
@@ -28,6 +28,8 @@ void *qi_malloc_atomic(qi_size_t size)
|
|
|
|
|
|
if (!ptr)
|
|
|
abort();
|
|
|
+
|
|
|
+ memset(ptr, 0, size);
|
|
|
|
|
|
return ptr;
|
|
|
}
|
|
|
@@ -54,10 +56,15 @@ void *qi_calloc(qi_size_t count, qi_size_t size)
|
|
|
|
|
|
char *qi_strdup(const char *s)
|
|
|
{
|
|
|
- char *ptr = GC_strdup(s);
|
|
|
-
|
|
|
+ qi_size_t z = strlen(s) + 1;
|
|
|
+ char *ptr = GC_MALLOC_ATOMIC(sizeof(char) * z);
|
|
|
+
|
|
|
if (!ptr)
|
|
|
abort();
|
|
|
+
|
|
|
+ ptr[z - 1] = 0;
|
|
|
+
|
|
|
+ strcpy(ptr, s);
|
|
|
|
|
|
return ptr;
|
|
|
}
|