array.cc
来自「这是一个做pdf阅读器的源代码文件,是大家学习阅读器资料的很好参考」· CC 代码 · 共 74 行
CC
74 行
//========================================================================//// Array.cc//// Copyright 1996-2003 Glyph & Cog, LLC////========================================================================#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma implementation#endif#include <stdlib.h>#include <stddef.h>#include "gmem.h"#include "Object.h"#include "Array.h"//------------------------------------------------------------------------// Array//------------------------------------------------------------------------Array::Array(XRef *xrefA) { xref = xrefA; elems = NULL; size = length = 0; ref = 1;}Array::~Array() { int i; for (i = 0; i < length; ++i) elems[i].free(); gfree(elems);}void Array::add(Object *elem) { if (length == size) { if (length == 0) { size = 8; } else { size *= 2; } elems = (Object *)greallocn(elems, size, sizeof(Object)); } elems[length] = *elem; ++length;}Object *Array::get(int i, Object *obj) { if (i < 0 || i >= length) {#ifdef DEBUG_MEM abort();#else return obj->initNull();#endif } return elems[i].fetch(xref, obj);}Object *Array::getNF(int i, Object *obj) { if (i < 0 || i >= length) {#ifdef DEBUG_MEM abort();#else return obj->initNull();#endif } return elems[i].copy(obj);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?