@@ -61,19 +61,17 @@ s->buckets[i] = empty_level2; return s; } -struct objc_sparsearray* -objc_sparsearray_copy(struct objc_sparsearray *src) +void +objc_sparsearray_copy(struct objc_sparsearray *dst, + struct objc_sparsearray *src) { - struct objc_sparsearray *dst; size_t i, j, k; uint32_t idx; - dst = objc_sparsearray_new(); - for (i = 0; i < 256; i++) { if (src->buckets[i]->empty) continue; for (j = 0; j < 256; j++) { @@ -91,12 +89,10 @@ idx = (i << 16) | (j << 8) | k; objc_sparsearray_set(dst, idx, obj); } } } - - return dst; } void objc_sparsearray_set(struct objc_sparsearray *s, uint32_t idx, const void *obj) {