Home | History | Annotate | Download | only in vm

Lines Matching refs:table

20  * Maintain a table of indirect references.  Used for local/global JNI
23 * The table contains object references that are part of the GC root set.
30 * operations that allow us to operate on segments of the table, where
34 * a method returns. Additions to the table must be made in the current
40 * The GC must be able to scan the entire table quickly.
49 * - scanning the entire table straight through
51 * If there's more than one segment, we don't guarantee that the table
57 * the table is capped at 64K.
59 * None of the table functions are synchronized.
66 * We need a 16-bit table index and a 2-bit reference type (global, local,
80 * bits, and keep a copy of the serial number in a parallel table. This is
102 * per slot in the table.
111 * Table definition.
113 * For the global reference table, the expected common operations are
116 * operations are adding a new entry and removing an entire table segment.
118 * If "allocEntries" is not equal to "maxEntries", the table may expand
120 * to keep pointers into "table" rather than offsets, you must use a
121 * fixed-size table.
140 * To avoid having to re-scan the table after a pop, we want to push the
141 * number of holes in the table onto the stack. Because of our 64K-entry
153 * actual reference slot. Instead of getting a table and doing a lookup,
155 * type and deleting the reference are more expensive because the table
157 * which table it's in), you can't move the table when expanding it (so
181 u4 numHoles:16; /* #of holes in entire table */
189 Object** table; /* bottom of the stack */
201 /* use as initial value for "cookie", and when table has only one segment */
226 * Extract the table index from an indirect reference.
245 * If "initialCount" != "maxCount", the table will expand as required.
247 * "kind" should be Local or Global. The Global table may also hold
250 * Returns "false" if table allocation fails.
258 * You must call dvmInitReferenceTable() before you can re-use this table.
263 * Start a new segment at the top of the table.
281 * Remove one or more segments from the top. The table entry identified
295 * Return the #of entries in the entire table. This includes holes, and
304 * Returns "true" if the table is full. The table is considered full if
317 * Returns NULL if the table is full (max entries reached, or alloc
341 pRef->table[topIndex++] = obj;
351 * Given an IndirectRef in the table, return the Object it refers to.
362 return pRef->table[idx];
378 * Dump the contents of a reference table to the log file.