Lines Matching refs:table

9 //!	Caches string widths in a hash table, to avoid a trip to the app server.
50 to uniquely identify the character in the hash table.
148 // We've found some characters which aren't yet in the hash table.
176 /*! \brief Searches for the table for the given font.
179 the index of the table, if found, or -1, if not.
180 \return \c true if the function founds the table,
204 /*! \brief Creates and insert an empty table for the given font.
205 \param font The font to create the table for.
206 \return The index of the newly created table.
211 _width_table_ table;
213 table.font = *font;
214 table.hashCount = 0;
215 table.tableCount = kTableCount;
216 table.widths = new hashed_escapement[kTableCount];
219 InsertItemsAt(1, position, &table);
227 \param index The index of the table to search.
236 const _width_table_ &table = fBuffer[index];
238 = static_cast<hashed_escapement*>(table.widths);
239 uint32 hashed = Hash(value) & (table.tableCount - 1);
246 if (++hashed >= (uint32)table.tableCount)
274 the hash table.
278 \param tableIndex the index of the table where the escapements
295 _width_table_ &table = fBuffer[tableIndex];
296 hashed_escapement* widths = static_cast<hashed_escapement*>(table.widths);
301 // Insert the escapements into the hash table
311 uint32 hashed = Hash(value) & (table.tableCount - 1);
316 if (++hashed >= (uint32)table.tableCount)
321 // The value is not in the table. Add it.
324 table.hashCount++;
326 // We always keep some free space in the hash table:
329 if (table.tableCount * 2 / 3 <= table.hashCount) {
330 const int32 newSize = table.tableCount * 2;
332 // Create and initialize a new hash table
335 // Rehash the values, and put them into the new table
336 for (uint32 oldPos = 0; oldPos < (uint32)table.tableCount;
349 // Delete the old table, and put the new pointer into the
352 table.tableCount = newSize;
353 table.widths = widths = newWidths;