예제 #1
0
static void free_pages(void *p, size_t len)
{
  free_used_pages(len);
  sfree(p, len);

  LOGICALLY_FREEING_PAGES(len);
  ACTUALLY_FREEING_PAGES(len);
}
예제 #2
0
static void free_pages(void *p, size_t len)
{
  LOGICALLY_FREEING_PAGES(len);

#if CACHE_SLOTS
  {
    int i;
   
    for (i = 0; i < CACHE_SLOTS; i++) {
      if (!cache[0][i].len)
	cache[0][i].len = len;
      if (cache[0][i].len == len) {
	*(void **)p = cache[0][i].page;
	cache[0][i].page = p;
	return;
      }
    }
  }
#endif

  ACTUALLY_FREEING_PAGES(len);

  VirtualFree(p, 0, MEM_RELEASE);
}
예제 #3
0
static void free_pages(void *p, size_t len)
{
    LOGICALLY_FREEING_PAGES(len);
    free_actual_pages(p, len, 0);
}