Commit Graph

665 Commits

Author SHA1 Message Date
Andrew McCreight
a3eeebd7d5 Bug 1193564 - Check result of Read32 in nsSupportsArray::Read. r=erahm 2015-08-13 14:24:59 -07:00
Birunthan Mohanathas
9b6236a10a Bug 1191100 - Remove XPIDL signature comments in .cpp files. r=ehsan
Comment-only so DONTBUILD.
2015-08-04 16:17:36 -07:00
Nicholas Nethercote
f23a15f104 Bug 1189156 (part 2) - Don't use enumeration style for nsTHashtable::SizeOf{In,Ex}cludingThis(). r=erahm.
After this change, we have ShallowSizeOf{In,Ex}cludingThis(), which don't do
anything to measure children. (They can be combined with iteration to measure
children.)

And we still have the existing single-arg SizeOf{In,Ex}cluding() functions,
which work if the entry type itself defines SizeOfExcludingThis().
2015-07-29 01:50:52 -07:00
Nicholas Nethercote
d130e7465e Bug 1189156 (part 1) - Don't use enumeration style for PLDHashTable::SizeOf{In,Ex}cludingThis(). r=froydnj.
After this change, we have PLDHashTable::ShallowSizeOf{In,Ex}cludingThis(),
which don't do anything to measure children. (They can be combined with
iteration to measure children.)

This patch also removes the PL_DHashTableSizeOf{In,Ex}cludingThis() functions.
They're not necessary because the methods can be used instead.

Finally, the patch deliberately converts some SizeOfExcludingThis() calls to
SizeOfIncludingThis(). These are all done on heap pointers so this change is
valid.
2015-07-29 22:28:20 -07:00
Honza Bambas
2919ba7e96 Bug 1024056 - Simple ASCII lexical analyzer. r=nfroyd 2015-07-27 05:07:00 -04:00
Nicholas Nethercote
9ef782d00c Bug 1181443 (part 1) - Use nsTHashtable::Iterator in nsCheapSet. r=froydnj.
nsCheapSet is used little enough that I didn't bother creating an iterator for
it.

I removed the dependency on PLDHashOperator by introducing nsCheapSetOperator,
which is equivalent.
2015-07-23 02:35:27 -07:00
Andrew McCreight
d43c9c8c7c Bug 931571, part 15 - Remove extra spaces in nsVariant macros. r=froydnj 2015-07-23 12:28:30 -07:00
Andrew McCreight
cac4930219 Bug 931571, part 14 - Delete various ways to copy or move nsDiscriminatedUnion. r=froydnj
nsDiscriminatedUnion owns memory without using smart pointers, so implementing anything
that would copy or move around one of these will require some care. Just forbid these
for now.
2015-07-23 12:28:30 -07:00
Andrew McCreight
4d7b5da27d Bug 931571, part 13 - Add a destructor for nsDiscriminatedUnion. r=froydnj
The existing nsDiscriminateUnions either always call Cleanup() when they
are about to go away, or they only handle scalar values so it is safe to
call Cleanup() on them without worrying about another discriminated union
having taken over any memory owned by this union.
2015-07-23 12:28:30 -07:00
Andrew McCreight
6a195e4cef Bug 931571, part 12 - Add nsDiscriminatedUnion::GetType(). r=froydnj
This is not quite enough to make the data members private because
XPCVariant pokes around to do some JS array stuff.
2015-07-23 12:28:30 -07:00
Andrew McCreight
51cea2f479 Bug 931571, part 11 - Turn nsDiscriminatedUnion's Traverse function into a method. r=froydnj 2015-07-23 12:28:30 -07:00
Andrew McCreight
1315238521 Bug 931571, part 10 - Turn SetFromVariant into a method. r=froydnj 2015-07-23 12:28:30 -07:00
Andrew McCreight
e53e412412 Bug 931571, part 9 - Turn most of the nsVariant setters into nsDiscriminated methods. r=froydnj
This also adds a new nsDiscriminatedUnion method SetFromDOMString, as somebody added an nsVariant method without the corresponding helper.
2015-07-23 12:28:30 -07:00
Andrew McCreight
12d7da659e Bug 931571, part 8 - Turn ConvertToISupports, ConvertToInterface and ConvertToArray to methods. r=froydnj 2015-07-23 12:28:30 -07:00
Andrew McCreight
fc5c442ba0 Bug 931571, part 7 - Turn ConvertTo*String and ToString into methods. r=froydnj 2015-07-23 12:28:30 -07:00
Andrew McCreight
86c0a53064 Bug 931571, part 6 - Make ConvertToID and String2ID into methods. r=froydnj 2015-07-23 12:28:30 -07:00
Andrew McCreight
b3ac30a78e Bug 931571, part 5 - Turn basic ConvertTo functions into methods. r=froydnj 2015-07-23 12:28:30 -07:00
Andrew McCreight
dc5e6aa7ad Bug 931571, part 4 - Fix some spacing inside macros.
There's more that could be done to fix the style, but this was bothering me.
2015-07-23 12:28:30 -07:00
Andrew McCreight
8867d20ca5 Bug 931571, part 3 - Rename return value of macro generated methods. r=froydnj 2015-07-23 12:28:29 -07:00
Andrew McCreight
065193dbb7 Bug 931571, part 2 - Convert Cleanup() and FreeArray() to methods. r=froydnj 2015-07-23 12:28:29 -07:00
Andrew McCreight
a76af36e15 Bug 931571, part 1 - Use a constructor for nsDiscriminatedUnion. r=froydnj 2015-07-23 12:28:29 -07:00
Kyle Huey
347297ca2a Bug 1185470: Remove 'Get' prefixes from hashtable iterator methods. r=froydnj 2015-07-20 20:21:28 +08:00
Andrew McCreight
3f0a193d96 Bug 1184695 - Fix some indentation in nsHashPropertyBag. r=poiru 2015-07-16 17:50:43 -07:00
Nicholas Nethercote
31ca4b223d Bug 1182926 - Fix "observer-service-suspect" bustage. r=poiru. 2015-07-12 15:55:27 -07:00
Nicholas Nethercote
e7e7541033 Bug 1181445 (part 13) - Use nsBaseHashTable::Iterator in xpcom/ds/. r=froydnj. 2015-07-09 16:54:59 -07:00
Nicholas Nethercote
8a6e87eb69 Bug 1181445 (part 3) - Use nsTHashTable::Iterator in nsObserverService. r=froydnj. 2015-07-09 16:49:32 -07:00
Bill McCloskey
9de6fdd63f Bug 1143006 - Show warning for http-on-* in child process (r=mrbkap) 2015-06-19 17:35:06 -07:00
Benoit Girard
198176edf9 Bug 858927 - Move the mozilla::TimeStamp into mozglue. r=glandium 2015-06-05 16:03:11 -04:00
Nicholas Nethercote
c2df231328 Bug 1174625 - Overhaul PLDHashTable's iterator. r=froydnj.
This change splits PLDHashTable::Iterator::NextEntry() into two separate
functions, which allow you to get the current element and advance the iterator
separately, which means you can use a for-loop to iterate instead of a
while-loop.

As part of this change, the internals of PLDHashTable::Iterator were
significantly changed and simplified (and modelled after js::HashTable's
equivalent code). It's no longer duplicating code from PL_DHashTableEnumerator.
The chaos mode code was a casualty of this, but given how unreliable that code
has proven to be (see bug 1173212, bug 1174046) this is for the best. (We can
reimplement chaos mode once PLDHashTable::Iterator is back on more solid
footing again, if we think it's important.)

All these changes will make it much easier to add an alternative Iterator that
removes elements, which was turning out to be difficult with the prior code.

In order to make the for-loop header usually fit on a single line, I
deliberately renamed a bunch of things to have shorter names.

In summary, you used to write this:

  PLDHashTable::Iterator iter(&table);
  while (iter.HasMoreEntries()) {
    auto entry = static_cast<FooEntry*>(iter.NextEntry());
    // ... do stuff with |entry| ...
  }
  // iter's scope extends beyond here

and now you write this:

  for (auto iter = table.Iter(); !iter.Done(); iter.Next()) {
    auto entry = static_cast<FooEntry*>(iter.Get());
    // ... do stuff with |entry| ...
  }
  // iter's scope doesn't reach here
2015-06-11 21:19:53 -07:00
Ted Mielczarek
05eeddde70 bug 1170586 - Make TimeStamp::FromSystemTime available on iOS. r=froydnj 2015-01-30 15:32:48 -05:00
Nicholas Nethercote
308955e28b Bug 1172761 (part 2) - Remove PL_DHashTableEnumerator use from nsPersistentProperties. r=froydnj.
The old code attempted to deal with any OOMs during this enumeration --
OOMs are possible because it's growing an nsCOMArray -- but failed to do so
correctly.

- It didn't check the return value of AppendObject().

- It did check that EntryCount() matched the return value of
  PL_DHashTableEnumerate(), but that's always (and vacuously) true.

The new code just returns NS_ERROR_OUT_OF_MEMORY if AppendObject() fails; this
is trivial now that it uses an iterator and doesn't have to call out to another
function.
2015-06-10 13:07:40 -07:00
Nicholas Nethercote
cd3feeddb4 Bug 1172761 (part 1) - Remove PL_DHashTableEnumerator use from nsAtomTable. r=froydnj. 2015-06-10 13:07:40 -07:00
Eric Rahm
29f00ac208 Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-03 15:25:57 -07:00
Nicholas Nethercote
94baddf190 Bug 1170416 (part 5) - Remove PLDHashTable::IsInitialized(). r=froydnj.
|mOps| is always non-null now, and there's no longer any distinction between
and uninitialized and initialized table. Yay.
2015-05-20 21:23:55 -07:00
Nicholas Nethercote
265569e6b8 Bug 1170416 (part 3) - Remove the PLDHashTable2 typedef. r=froydnj. 2015-05-19 16:46:17 -07:00
Carsten "Tomcat" Book
e2f82674b8 Backed out 14 changesets (bug 1165515) for linux x64 e10s m2 test failures
Backed out changeset d68dcf2ef372 (bug 1165515)
Backed out changeset 7c3b45a47811 (bug 1165515)
Backed out changeset b668b617bef2 (bug 1165515)
Backed out changeset d0916e1283a2 (bug 1165515)
Backed out changeset ac4dc7489942 (bug 1165515)
Backed out changeset e9632ce8bc65 (bug 1165515)
Backed out changeset c16d215cc7e4 (bug 1165515)
Backed out changeset e4d474f3c51a (bug 1165515)
Backed out changeset d87680bf9f7c (bug 1165515)
Backed out changeset b3c0a45ba99e (bug 1165515)
Backed out changeset 9370fa197674 (bug 1165515)
Backed out changeset 50970d668ca1 (bug 1165515)
Backed out changeset ffa4eb6d24b9 (bug 1165515)
Backed out changeset 5fcf1203cc1d (bug 1165515)
2015-06-02 13:05:56 +02:00
Eric Rahm
18bd3de863 Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-01 22:17:33 -07:00
Wes Kocher
bd796581dc Backed out 14 changesets (bug 1165515) for b2g mochitest-6 permafail CLOSED TREE
Backed out changeset 9b97e2aa2ed9 (bug 1165515)
Backed out changeset 150606c022a2 (bug 1165515)
Backed out changeset 4e875a488349 (bug 1165515)
Backed out changeset 467e7feeb546 (bug 1165515)
Backed out changeset d6b6cc373197 (bug 1165515)
Backed out changeset 0615265b593c (bug 1165515)
Backed out changeset fafd1dce9f08 (bug 1165515)
Backed out changeset d1df869245f9 (bug 1165515)
Backed out changeset 6876a7c63611 (bug 1165515)
Backed out changeset b7841c94a9a3 (bug 1165515)
Backed out changeset e5e3617f7c73 (bug 1165515)
Backed out changeset 39be3db95978 (bug 1165515)
Backed out changeset 0ec74176f8de (bug 1165515)
Backed out changeset 5b928dd10d71 (bug 1165515)
2015-06-01 17:57:58 -07:00
Eric Rahm
ae32743ed2 Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-01 14:31:01 -07:00
Botond Ballo
0fe06cffa0 Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj 2015-05-26 14:33:55 -04:00
Phil Ringnalda
f3d4dd7e09 Back out 3 changesets (bug 1119980) for emulator-l bustage
CLOSED TREE

Backed out changeset 12ce98475c6e (bug 1119980)
Backed out changeset bdb8d05f8870 (bug 1119980)
Backed out changeset a68a18840492 (bug 1119980)
2015-05-25 18:48:51 -07:00
Botond Ballo
9a8e8b29e8 Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj 2015-05-25 20:45:17 -04:00
Nicholas Nethercote
16479c9560 Bug 1166598 (part 6) - Clean up nsStaticCaseInsensitiveNameTable. r=froydnj.
This patch simplifies nsStaticCaseInsensitiveNameTable greatly by taking
advantage of the following observations.

- |new| is infallible, so |new nsStaticCaseInsensitiveNameTable()| calls don't
  need their return value checked.

- nsStaticCaseInsensitiveNameTable::Init() checks if any of the added entries
  differ only in case, so the callers of that function don't need to do the
  same check.

- nsStaticCaseInsensitiveNameTable::Init() never returns false because
  moz_xmalloc() is infallible. (Its callers never check the return value
  anyway.) So it can be merged into the constructor. And
  ~nsStaticCaseInsensitiveNameTable() need not null-check |mNameArray|.

- PLDHashTable now has an initializing constructor and destructor, so these can
  be used in nsStaticCaseInsensitiveNameTable, thus avoiding manual
  PLD_HashTable{Init,Finish}() calls.
2015-05-05 21:13:53 -07:00
Eric Rahm
ccf1ec07c6 Bug 1165515 - Part 1: Convert PR_LOG to MOZ_LOG. r=froydnj 2015-05-21 13:22:04 -07:00
Nicholas Nethercote
5990994dda Bug 1166586 (part 2) - Convert some easy PL_DHashTable{Init,Finish} cases. r=froydnj.
This patch converts easy cases, i.e. where the PL_DHashTableInit() call occurs
in a constructor and the PL_DHashTableFinish() call occurs in a destructor.
2015-05-04 22:59:24 -07:00
Eric Rahm
c5e63515bf Bug 1165518 - Part 2: Replace prlog.h with Logging.h. rs=froydnj 2015-05-19 11:15:34 -07:00
Nicholas Nethercote
d707ab22c7 Bug 1165768 (part 6) - Convert |gAtomTable| to |PLDHashTable2*|. r=froydnj. 2015-05-18 00:52:08 -07:00
Nicholas Nethercote
0addd071a9 Back out all four patches from bug 1161377. r=me.
Due to Android startup regressions (bug 1163066) and plugin crashes (bug
1165155).
2015-05-14 21:48:43 -07:00
Nicholas Nethercote
37a9035e51 Bug 1161377 (part 3, attempt 2) - Convert some easy PL_DHashTable{Init,Finish} cases. r=froydnj. 2015-05-12 17:33:26 -07:00
Nicholas Nethercote
8a397036c0 Bug 1161377 (part 2.5) - Move all static PLDHashTable instances onto the heap to avoid static constructors. r=froydnj. 2015-05-12 17:33:22 -07:00