diff --git a/blocks_runtime.m b/blocks_runtime.m index 8290ac1..070fd07 100644 --- a/blocks_runtime.m +++ b/blocks_runtime.m @@ -114,7 +114,7 @@ void _Block_object_assign(void *destAddr, const void *object, const int flags) { (*dst)->forwarding = *dst; } - if(src->size >= sizeof(struct psy_block_byref_obj)) + if((size_t)src->size >= sizeof(struct psy_block_byref_obj)) { src->byref_keep(*dst, src); } @@ -161,7 +161,7 @@ void _Block_object_dispose(const void *object, const int flags) src->flags--; if((src->flags & ~BLOCK_HAS_COPY_DISPOSE) == 0) { - if(src->size >= sizeof(struct psy_block_byref_obj)) + if((size_t)src->size >= sizeof(struct psy_block_byref_obj)) src->byref_dispose(src); free(src); diff --git a/class.h b/class.h index 6d005d3..8a0d726 100644 --- a/class.h +++ b/class.h @@ -157,17 +157,17 @@ enum objc_class_flags static inline void objc_set_class_flag(struct objc_class *aClass, enum objc_class_flags flag) { - aClass->info |= (long)flag; + aClass->info |= (unsigned long)flag; } static inline void objc_clear_class_flag(struct objc_class *aClass, enum objc_class_flags flag) { - aClass->info &= ~(long)flag; + aClass->info &= ~(unsigned long)flag; } static inline BOOL objc_test_class_flag(struct objc_class *aClass, enum objc_class_flags flag) { - return (aClass->info & (long)flag) == (long)flag; + return (aClass->info & (unsigned long)flag) == (unsigned long)flag; } /**