Bläddra i källkod

minor gc optimization: no need to set bmp bits to 0, only check in GC_DEBUG that they are

ncannasse 6 år sedan
förälder
incheckning
2ff51637da
1 ändrade filer med 2 tillägg och 3 borttagningar
  1. 2 3
      src/alloc.c

+ 2 - 3
src/alloc.c

@@ -622,14 +622,13 @@ alloc_var:
 	if( p->bmp ) {
 	if( p->bmp ) {
 		int i;
 		int i;
 		int bid = p->next_block;
 		int bid = p->next_block;
+#		ifdef GC_DEBUG
 		for(i=0;i<nblocks;i++) {
 		for(i=0;i<nblocks;i++) {
-#			ifdef GC_DEBUG
 			if( (p->bmp[bid>>3]&(1<<(bid&7))) != 0 ) hl_fatal("Alloc on marked block");
 			if( (p->bmp[bid>>3]&(1<<(bid&7))) != 0 ) hl_fatal("Alloc on marked block");
-#			endif
-			p->bmp[bid>>3] &= ~(1<<(bid&7));
 			bid++;
 			bid++;
 		}
 		}
 		bid = p->next_block;
 		bid = p->next_block;
+#		endif
 		p->bmp[bid>>3] |= 1<<(bid&7);
 		p->bmp[bid>>3] |= 1<<(bid&7);
 	} else {
 	} else {
 		p->free_blocks = p->max_blocks - (p->next_block + nblocks);
 		p->free_blocks = p->max_blocks - (p->next_block + nblocks);