Commit Graph

5 Commits

Author SHA1 Message Date
brendan%mozilla.org
769e09a93e - Add a generation number to JSDHashTable that counts entryStore changes due
to grows, shrinks, and compresses.  This helps JS_DHashTableOperate callers
  who hold returned entry pointers to validate those pointers and avoid having
  to re-lookup an entry by its key.
- Balance that addition by removing JSDHashTable.sizeMask, which is induced by
  JSDHashTable.sizeLog2 at the cost of two typically single-cycle instructions.
- Use JSDHashTable.generation in jsobj.c to avoid unsafely dereferencing an
  entry pointer held across calls to JSClass.resolve from js_LookupProperty,
  which may recur and add entries to cx->resolving, growing that table and
  invalidating entry pointers held by earlier js_LookupProperty activations.
(bug 78121, r=jst@netscape.com, sr=jband@netscape.com, a=asa@mozilla.org)
2001-05-25 03:05:38 +00:00
brendan%mozilla.org
38fa3fed08 Add optional JSDHashTableOps.initEntry hook, spruce up comments (74883, r=waterson, sr=shaver). 2001-05-15 21:07:10 +00:00
mkaply%us.ibm.com
5f5b489750 #73191
r=beard, sr=brendan
Remove CRT_CALL - change to PR_CALLBACK or JS_DLL_CALLBACK appropriately
2001-03-26 23:21:53 +00:00
brendan%mozilla.org
1e8530d216 Fix bug 69271, r=waterson, sr=shaver:
- Don't ape java.lang.String's bogo-sampling hash function for "long" (>=16
  char) strings.
- Theory and practice comment in pldhash.h helps analyze when to use double
  hashing (most of the time) vs. when to use chaining.
- Subroutine ChangeTable from PL_DHashTableOperate so it can be called from
  PL_DHashTableEnumerate, if the latter finds that enough entries have been
  removed to be worth a shrink or compress cycle.
2001-03-14 07:48:07 +00:00
brendan%mozilla.org
da11005af4 Add pldhash.[ch], sed-translated from js/src/jsdhash.[ch]. 2000-08-30 19:32:03 +00:00