Commit Graph

65 Commits

Author SHA1 Message Date
Nicholas Nethercote
073c69e299 Bug 1050035 (part 3) - Remove PL_NewDHashTable() and PL_DHashTableDestroy(). r=froydnj.
Because they are now just equivalent to |new PLDHashTable()| +
PL_DHashTableInit() and PL_DHashTableFinish(t) + |delete t|, respectively.

They're only used in a handful of places and obscure things more than they
clarify -- I only recently worked out exactly how they different from Init()
and Finish().
2015-02-01 20:36:52 -08:00
Nicholas Nethercote
c38455902a Bug 1124973 (part 2) - Introduce PL_DHashTableSearch(), and replace most PL_DHashTableLookup() calls with it. r=froydnj.
It feels safer to use a function with a new name, rather than just changing the
behaviour of the existing function.

For most of these cases the PL_DHashTableLookup() result was checked with
PL_DHASH_ENTRY_IS_{FREE,BUSY} so the conversion was easy. A few of them
preceded that check with a useless null check, but the intent of these was
still easy to determine.

I'll do the trickier ones in subsequent patches.
2015-01-22 21:06:55 -08:00
Nicholas Nethercote
8b74e08651 Bug 1124973 (part 1) - Always use inheritance rather than composition for PLDHashTable entries. r=froydnj.
Because (a) this is how it's usually done, (b) it allows static_cast<> instead
of reinterpret_cast<>, and (c) it will make subsequent patches easier.
2015-01-22 21:05:52 -08:00
Nicholas Nethercote
4604f714c6 Bug 1123151 (part 2) - Add PLDHashTable::IsInitialized(). r=froydnj.
This encapsulates most of the uses of PLDHashTable::ops.
2015-01-19 16:11:34 -08:00
Nicholas Nethercote
009293c72a Bug 1123151 (part 1) - Set PLDHashTable::ops consistently. r=froydnj.
Currently the setting of PLDHashTable::ops is very haphazard.

- PLDHashTable has no constructor, so it's not auto-nulled, so lots of places
  null it themselves.

- In the fallible PLDHashTable::Init() function, if the entry storage
  allocation fails we'll be left with a table that has |ops| set -- indicating
  it's been initialized -- but has null entry storage. I'm not certain this can
  cause problems but it feels unsafe, and some (but not all) callers of Init()
  null it on failure.

- PLDHashTable does not null |ops| in Finish(), so some (but not all) callers
  do this themselves.

This patch makes things simpler.

- It adds a constructor that zeroes |ops|.

- It modifies Init() so that it only sets |ops| once success is ensured.

- It zeroes |ops| in Finish().

- Finally, it removes all the now-unnecessary |ops| nulling done by the users
  of PLDHashTable.
2015-01-19 16:01:24 -08:00
Nicholas Nethercote
eda870fe92 Bug 1120476 (part 3) - Remove PLDHashTable::data. r=froydnj. 2015-01-13 16:42:13 -08:00
Michael Pruett
75418da479 Bug 1120262 - Use new PL_DHashTable{Add,Remove} functions. r=nfroyd 2015-01-11 18:30:25 -06:00
Michael Pruett
cbe37abc44 Bug 1118024 - Use new PL_DHashTable{Add,Lookup,Remove} functions. r=nfroyd 2015-01-05 20:27:28 -06:00
Ehsan Akhgari
2b66a2b7bd Bug 1061049 - Fix some bad impliciti constructors in RDF; r=bsmedberg 2014-09-02 18:21:23 -04:00
Nicholas Nethercote
c9cbbdc34d Bug 1057912 - Privatize most of PLDHashTable's fields. r=roc. 2014-08-25 16:56:33 -07:00
Ralph Giles
5173c14f7b Bug 1057224 - Pass actual class name for rdf ctor counting. r=froydnj
We want to enforce valid names in these macros, so we need
to use a valid type name here.
2014-08-21 22:41:00 -07:00
Ralph Giles
37797cd62c Back out 2f60f94d4d3c and d06c2e71aca2 for cross-platform breakage. 2014-08-22 15:13:03 -07:00
Ralph Giles
18f7109dc7 Bug 1057224 - Pass actual class name for rdf ctor counting. r=nfroydnj
We want to enforce valid names in these macros, so we need
to use a valid type name here.
2014-08-21 22:41:00 -07:00
Nicholas Nethercote
663b82ea3b Bug 1050009 - Initialize pldhash tables with a length, not a capacity. r=roc.
* * *
imported patch rm-dummy-params
2014-08-06 06:31:21 -07:00
Birunthan Mohanathas
d9884c179b Bug 1040774 - Flatten rdf/{base,datasource,util}/{idl,public,src}/ directories. r=pike 2014-07-21 06:01:08 -07:00