@@ -45,10 +45,16 @@ } alloc_failed_exception; #ifdef NEED_OBJC_SYNC_INIT extern BOOL objc_sync_init(); #endif + +void +enumeration_mutation_handler(id object) +{ + @throw [OFEnumerationMutationException newWithClass: [object class]]; +} @implementation OFObject + (void)load { #ifdef NEED_OBJC_SYNC_INIT @@ -55,10 +61,14 @@ if (!objc_sync_init()) { fputs("Runtime error: objc_sync_init() failed!\n", stderr); abort(); } #endif + +#ifdef OF_APPLE_RUNTIME + objc_setEnumerationMutationHandler(enumeration_mutation_handler); +#endif } + (void)initialize { }