@@ -49,11 +49,11 @@ class_registerAlias_np(Class cls, const char *name) { if (classes == NULL) return NO; - objc_hashtable_set(classes, name, cls); + objc_hashtable_set(classes, name, (Class)((uintptr_t)cls | 1)); return YES; } static void @@ -75,11 +75,11 @@ if (classes == NULL) return Nil; objc_global_mutex_lock(); - c = (Class)objc_hashtable_get(classes, name); + c = (Class)((uintptr_t)objc_hashtable_get(classes, name) & ~1); objc_global_mutex_unlock(); return c; } @@ -614,11 +614,11 @@ for (i = 0; i <= classes->last_idx; i++) { if (classes->data[i] != NULL) { Class cls = classes->data[i]->obj; - if (cls == Nil) + if (cls == Nil || (uintptr_t)cls & 1) continue; objc_free_class(cls); objc_free_class(cls->isa); }