pmem.cxx
来自「PTypes是一个扩充了多线程和网络功能的STL库」· CXX 代码 · 共 87 行
CXX
87 行
/* * * C++ Portable Types Library (PTypes) * Version 2.0.2 Released 17-May-2004 * * Copyright (C) 2001-2004 Hovik Melikyan * * http://www.melikyan.com/ptypes/ * */#include <stdlib.h>#include "pport.h"PTYPES_BEGINconst int quant = 64;const int qmask = ~63;const int quant2 = 4096;const int qmask2 = ~4095;// dynamic reallocation policy for strings and listsint ptdecl memquantize(int a){ if (a <= 16) return 16; if (a <= 32) return 32; else if (a <= 2048) return (a + quant - 1) & qmask; else return (a + quant2 - 1) & qmask2;}void ptdecl memerror() { fatal(CRIT_FIRST + 5, "Not enough memory");}void* ptdecl memalloc(uint a) { if (a == 0) return nil; else { void* p = malloc(a); if (p == nil) memerror(); return p; }}void* ptdecl memrealloc(void* p, uint a) { if (a == 0) { memfree(p); return nil; } else if (p == nil) return memalloc(a); else { p = realloc(p, a); if (p == nil) memerror(); return p; }}void ptdecl memfree(void* p) { if (p != nil) free(p);}PTYPES_END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?