* mark.c (GC_push_all, GC_push_selected): Properly check for empty
region after boundaries alignment (for the case when boundaries
unaligned and the region is short than one word); simplify the checked
condition.
bottom = (ptr_t)(((word) bottom + ALIGNMENT-1) & ~(ALIGNMENT-1));
top = (ptr_t)(((word) top) & ~(ALIGNMENT-1));
- if (top == 0 || bottom == top) return;
+ if (bottom >= top) return;
+
GC_mark_stack_top++;
if (GC_mark_stack_top >= GC_mark_stack_limit) {
ABORT("Unexpected mark stack overflow");
bottom = (ptr_t)(((word) bottom + ALIGNMENT-1) & ~(ALIGNMENT-1));
top = (ptr_t)(((word) top) & ~(ALIGNMENT-1));
- if (top == 0 || bottom == top) return;
+ if (bottom >= top) return;
h = HBLKPTR(bottom + HBLKSIZE);
if (top <= (ptr_t) h) {