Граф коммитов

13 Коммитов

Автор SHA1 Сообщение Дата
Sylvestre Ledru dd5741407b Bug 1498586 - Add clang-format off to avoid the reformatting of the data structures r=Ehsan
Too hard/impossible for the tool to format correctly these structs

Differential Revision: https://phabricator.services.mozilla.com/D8569

--HG--
extra : moz-landing-system : lando
2018-10-12 20:48:24 +00:00
Henri Sivonen 8e541f1e0a Bug 1473337 - Omit ASCII-case length calculation for short strings when performing an encoding conversion that expands non-ASCII. r=Nika
MozReview-Commit-ID: 88k27XnFym9

--HG--
extra : rebase_source : d633eee2a8f64df22663607125ca99a42c59ec6d
2018-07-05 09:27:29 +03:00
Nicholas Nethercote ce73ba39cf Bug 1482011 - Make Bench_Cpp_MozHashSet more idiomatic. r=froydnj
I discovered there are some shortcut methods for some common operations.

--HG--
extra : rebase_source : b22ca592af24857e093308d4b6351621062b8cea
2018-08-14 08:52:38 +10:00
Nicholas Nethercote b9e071e2e8 Bug 1481998 - Make mozilla::Hash{Map,Set}'s entry storage allocation lazy. r=luke,sfink
Entry storage allocation now occurs on the first lookupForAdd()/put()/putNew().
This removes the need for init() and initialized(), and matches how
PLDHashTable/nsTHashtable work. It also removes the need for init() functions
in a lot of types that are built on top of mozilla::Hash{Map,Set}.

Pros:

- No need for init() calls and subsequent checks.

- No memory allocated for empty tables, which are not that uncommon.

Cons:

- An extra branch in lookup() and lookupForAdd(), but not in put()/putNew(),
  because the existing checkOverloaded() can handle it.

Specifics:

- Construction now can take a length parameter.

- init() is removed. Explicit length-setting, when necessary, now occurs in the
  constructors.

- initialized() is removed.

- capacity() now returns zero when the entry storage is absent.

- lookupForAdd() is no longer `const`, because it can instantiate the storage,
  which requires modifications.

- lookupForAdd() can now return an invalid AddPtr in two cases:

  - old: hashing failure (due to OOM in the hasher)

  - new: OOM while instantiating entry storage

  The existing failure handling paths for the old case work for the new case.

- clear(), finish(), and clearAndShrink() are replaced by clear(), compact(),
  and reserve(). The old compactIfUnderloaded() is also removed.

- Capacity computation code is now in its own functions, bestCapacity() and
  hashShift(). setTableSizeLog2() is removed.

- uint32_t is used throughout for capacities, instead of size_t, for
  consistency with other similar values.

- changeTableSize() now takes a capacity instead of a deltaLog2, and it can now
  handle !mTable.

Measurements:

- Total source code size is reduced by over 900 lines. Also, lots of existing
  lines got shorter (i.e. two checks were reduced to one).

- Executable size barely changed, down by 2 KiB on Linux64. The extra branches
  are compensated for by the lack of init() calls.

- Speed changed negligibly. The instruction count for Bench_Cpp_MozHash
  increased from 2.84 billion to 2.89 billion but any execution time change was
  well below noise.
2018-08-10 18:00:29 +10:00
Nicholas Nethercote f32766d3de Bug 1478879 - Remove Range/Enum use in Bench.cpp. r=froydnj
--HG--
extra : rebase_source : 0fabb074eef422e55ad79b68076d766674476ddc
2018-07-31 10:31:00 +10:00
Nicholas Nethercote 997e790c3f Bug 1477626 - Use mozilla::HashTable instead of js::HashTable in Bench.cpp. r=froydnj
MozReview-Commit-ID: 4P5L9Kdkiuu

--HG--
extra : rebase_source : 3311757797cbc7c699c39b5ee583910c1924cfb1
2018-07-26 20:16:00 +10:00
Nicholas Nethercote e6f8df84ad Bug 1477622 - Add microbenchmarks measuring hash table performance. r=froydnj
--HG--
extra : rebase_source : 2d76bfcb862b3b690ea8db2b5b007dde2a90f914
2018-07-24 10:38:43 +10:00
Makoto Kato d7238e0835 Bug 1453551 - Don't use i8 as c_char in xpcom-gtest. r=mystor
c_char isn't i8 on some platforms such as Android/arm, so we should use c_char
instead.

MozReview-Commit-ID: 486BCGvYAE0

--HG--
extra : rebase_source : 0ee9d510de5cd8ab20daa1709c7425ca95dc8793
2018-04-12 15:28:08 +09:00
L. David Baron 1da1c4f2be Bug 1448138 - Rename string DataFlags::SHARED to REFCOUNTED to make it clearer to those reading the code. r=erahm
MozReview-Commit-ID: 1mJuwY5dQkj

--HG--
extra : transplant_source : %B8%97%C2%AAa%A6%3D%E3%AC%9C%C1%15%99%FE%94%1A%E2K%81%F1
2018-03-23 17:31:37 -07:00
Nika Layzell 80fab95acc Bug 1433015 - Part 2: Change the xpcom test to use the observer service, r=froydnj
MozReview-Commit-ID: JSnMIvu97aT
2018-01-30 15:45:21 -05:00
Nika Layzell 281f61ed94 Bug 1293362 - Part 8: Add some tests for using xpcom interfaces from rust code, r=froydnj
MozReview-Commit-ID: 1b6tfHtyDWf
2018-01-23 17:27:33 -05:00
Nika Layzell 94e3d3cb1b Bug 1293362 - Part 2: Add skeleton crates for xpcom bindings, r=froydnj
MozReview-Commit-ID: H5nxsk4cg2E
2018-01-23 17:27:23 -05:00
Nika Layzell 1b1ba4879a Bug 1403213 - Move nsstring into servo/support/gecko/nsstring, r=froydnj
MozReview-Commit-ID: 8ucStGkxmj7

--HG--
rename : xpcom/rust/nsstring/gtest/Test.cpp => xpcom/rust/gtest/nsstring/Test.cpp
rename : xpcom/rust/nsstring/gtest/test.rs => xpcom/rust/gtest/nsstring/test.rs
extra : rebase_source : 509a2ab1aa569e8f3ef0955dcdfa36b53ce5e234
2017-10-23 15:37:25 -04:00