فهرست منبع

Fix segment release check in internal memory allocator.

Thanks to Jinji Zeng. #1179 #1157
Mike Pall 1 سال پیش
والد
کامیت
9b5e837ac2
1فایلهای تغییر یافته به همراه1 افزوده شده و 1 حذف شده
  1. 1 1
      src/lj_alloc.c

+ 1 - 1
src/lj_alloc.c

@@ -975,7 +975,7 @@ static size_t release_unused_segments(mstate m)
       mchunkptr p = align_as_chunk(base);
       size_t psize = chunksize(p);
       /* Can unmap if first chunk holds entire segment and not pinned */
-      if (!cinuse(p) && (char *)p + psize >= base + size - TOP_FOOT_SIZE) {
+      if (!cinuse(p) && (char *)p + psize == (char *)mem2chunk(sp)) {
 	tchunkptr tp = (tchunkptr)p;
 	if (p == m->dv) {
 	  m->dv = 0;