Lines Matching refs:pRef

25 bool dvmInitReferenceTable(ReferenceTable* pRef, int initialCount,
31 pRef->table = (Object**) malloc(initialCount * sizeof(Object*));
32 if (pRef->table == NULL)
35 memset(pRef->table, 0xdd, initialCount * sizeof(Object*));
37 pRef->nextEntry = pRef->table;
38 pRef->allocEntries = initialCount;
39 pRef->maxEntries = maxCount;
47 void dvmClearReferenceTable(ReferenceTable* pRef)
49 free(pRef->table);
50 pRef->table = pRef->nextEntry = NULL;
51 pRef->allocEntries = pRef->maxEntries = -1;
55 * Add "obj" to "pRef".
57 bool dvmAddToReferenceTable(ReferenceTable* pRef, Object* obj)
61 assert(pRef->table != NULL);
62 assert(pRef->allocEntries <= pRef->maxEntries);
64 if (pRef->nextEntry == pRef->table + pRef->allocEntries) {
66 if (pRef->nextEntry == pRef->table + pRef->maxEntries) {
67 ALOGW("ReferenceTable overflow (max=%d)", pRef->maxEntries);
74 newSize = pRef->allocEntries * 2;
75 if (newSize > pRef->maxEntries)
76 newSize = pRef->maxEntries;
77 assert(newSize > pRef->allocEntries);
79 newTable = (Object**) realloc(pRef->table, newSize * sizeof(Object*));
82 pRef->allocEntries, newSize, sizeof(Object*));
85 LOGVV("Growing %p from %d to %d", pRef, pRef->allocEntries, newSize);
88 pRef->nextEntry = newTable + (pRef->nextEntry - pRef->table);
89 pRef->table = newTable;
90 pRef->allocEntries = newSize;
93 *pRef->nextEntry++ = obj;
100 Object** dvmFindInReferenceTable(const ReferenceTable* pRef, Object** bottom,
105 ptr = pRef->nextEntry;
114 * Remove "obj" from "pRef". We start at the end of the list (where the
121 bool dvmRemoveFromReferenceTable(ReferenceTable* pRef, Object** bottom,
126 assert(pRef->table != NULL);
132 ptr = dvmFindInReferenceTable(pRef, bottom, obj);
139 pRef->nextEntry--;
140 int moveCount = pRef->nextEntry - ptr;
365 void dvmDumpReferenceTable(const ReferenceTable* pRef, const char* descr)
367 dvmDumpReferenceTableContents(pRef->table, dvmReferenceTableEntries(pRef),