Commit Graph

37 Commits

Author SHA1 Message Date
Anthony Ramine
45b78aa11c Bug 1431449 - Move nsTString::ToInteger* methods to nsTSubstring; r=bz
MozReview-Commit-ID: 8hCDfF8rLRC
2018-01-18 15:32:35 +01:00
Eric Rahm
165110812d Bug 1424120 - Part 9: Further cleanup of minor nits in ToInteger. r=njn
Final style cleanup:
  - Comment formatting
  - Move variable declarations to where they're used
  - Don't set NS_OK until we finish processing
  - Early exit for error conditions
2017-12-08 11:52:10 -08:00
Eric Rahm
27a70f75f5 Bug 1424120 - Part 8: clang-format ToInteger. r=njn 2017-12-08 11:43:15 -08:00
Eric Rahm
555a7332d9 Bug 1424120 - Part 7: Remove duplicated switch logic from ToInteger. r=njn 2017-12-08 11:17:55 -08:00
Eric Rahm
df26ab0076 Bug 1424120 - Part 6: Add early returns to ToInteger. r=njn
This reduces the indentation by removing the `if(cp)` and `if(done)` blocks
and just returning early. The `if(cp)` was unnecessary as `BeginReading` will
never return nullptr.
2017-12-08 10:15:53 -08:00
Eric Rahm
89bf1f49f2 Bug 1424120 - Part 5: Enforce support for only radix of 10 and 16. r=njn
In theory other radixes can be passed in but we don't actually handle them.
This asserts that the radix is supported and just switches over to using 10 and
16 directly.
2017-12-07 18:54:13 -08:00
Eric Rahm
6ae47d4034 Bug 1424120 - Part 4: Remove haveValue logic from ToInteger. r=njn
The `haveValue` logic is no longer necessary. If we don't have a value the
result will always be 0.
2017-12-07 18:44:03 -08:00
Eric Rahm
9b0dd1b7a0 Bug 1424120 - Part 3: Update error handling in ToInteger. r=njn 2017-12-07 17:51:26 -08:00
Eric Rahm
7e1b3b74f1 Bug 1424120 - Part 2: Remove kAutoDetect support from ToInteger. r=njn
kAutoDetect is never actually used in our codebase and makes ToInteger rather
convoluted. This removes the logic for it, the constant itself, and the
resulting dead code.
2017-12-07 15:40:15 -08:00
Eric Rahm
63d3b5ddd3 Bug 1424120 - Part 1: Combine logic for ToInteger impls. r=njn
Replaced the duplicated logic with a shared template implementation.
2017-12-07 15:18:44 -08:00
Eric Rahm
bf49ee0a6a Bug 1403083 - Part 1: Properly disable string functions for invalid char types. r=froydnj
In order to properly disable template functions with `std::enable_if` we need
to use the resulting type. This only works if we use a dependent type in the
template params, hence the need to shadow the `T` param.

Proper usage is now of the form:

template<typename Q = T, typename EnableIfChar = CharOnlyT<Q>>
Foo();
2017-10-03 12:44:44 -07:00
Eric Rahm
eca59d1f0e Bug 1393230 - Part 3: Convert the xpcom string classes to be templated on char type. r=njn, r=fitzgen, r=sfink
This removes the double-include macro hackery that we use to define two
separate string types (nsAString and nsACString) in favor of a templated
solution.

Annotations for Valgrind and the JS hazard analysis are updated as well as
the rust binding generations for string code.
2017-08-14 14:22:50 -07:00
Julian Seward
7d1151d83a Bug 1382563 - Remove ns*String::AssignWithConversion. r=erahm.
This patch replaces four functions of the name AssignWithConversion which
are essentially wrappers around CopyASCIItoUTF16 and LossyCopyUTF16toASCII
with direct calls to the latter two functions.  The replaced functions are:

  void nsCString::AssignWithConversion( const nsAString& aData )
  void nsString::AssignWithConversion( const nsACString& aData )

  void nsTString_CharT::AssignWithConversion(
                            const incompatible_char_type* aData,
                            int32_t aLength = -1);

The last of the three exists inside the double-included nsTString* world and
so describes two functions, giving four in total.

This has two advantages:

* it removes code

* at the call points, it makes clear (from the replacement name) which
  conversion is being carried out.  The generic name "AssignWithConversion"
  doesn't make that obvious -- one had to infer it from the types.

The patch also removes two commented out lines from
editor/composer/nsComposerCommands.cpp, that appear to be related.  They are
at top level, where they would never have compiled.  They look like
leftovers from some previous change.
2017-07-24 19:23:52 +02:00
L. David Baron
202e05578a Bug 1343715 - Split nsTSubstring::mFlags into separate variables for class and data flags. r=dmajor
MozReview-Commit-ID: JW1p5BxpHKA
2017-07-10 12:23:10 -07:00
Milan Sreckovic
6dd3801c9c Bug 1358297: Part 4. Optimize Strip/CompressWhitespace as a special case using ASCIIMask. r=froydnj
MozReview-Commit-ID: 2RVV3rPqOhl
2017-05-10 13:12:42 -04:00
Wes Kocher
900a24bea8 Backed out 4 changesets (bug 1358297) for hazard build failures a=backout
Backed out changeset 95211a496191 (bug 1358297)
Backed out changeset 3c1b426a5cce (bug 1358297)
Backed out changeset 9201d345a1d5 (bug 1358297)
Backed out changeset c926817dea60 (bug 1358297)

MozReview-Commit-ID: 874DF43K7Dp
2017-05-05 12:45:46 -07:00
Milan Sreckovic
c47b6a47c4 Bug 1358297: Part 4. Optimize Strip/CompressWhitespace as a special case using ASCIIMask. r=froydnj
MozReview-Commit-ID: H43rS5WN5Ly
2017-05-05 13:40:31 -04:00
Valentin Gosu
ea6ed1aab1 Bug 1344498 - Add fallible StripWhitespace r=njn
MozReview-Commit-ID: 8UOTEBlFxfO
2017-03-23 12:52:31 +01:00
Eric Rahm
3c17c2a4ae Bug 1317545 - Check new length in ReplaceSubstring. r=froydnj
MozReview-Commit-ID: 5Qvusd3twhM
2016-11-28 13:29:04 -08:00
Birunthan Mohanathas
bfee0fb40c Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda
d871b9515f Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas
245cd6a02f Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Mike Hommey
715db83e04 Bug 1126593 - Add a global fallible instance, so that using fallible works directly, everywhere. r=njn 2015-02-02 09:56:13 +09:00
Ehsan Akhgari
0f02dbc8c0 Bug 1097452 - Use fallible allocation when setting the value of an <input> or <textarea> element; r=jst,froydnj
This patch handles most of the call sites for these allocations except
for a few where I added TODO comments with some information.  Handling
those places may require reworking lots of code, so I prefer to not do
that here.
2015-01-14 17:31:41 -05:00
Ehsan Akhgari
0dcceb0b64 Bug 1113005 - Copy only the necessary number of bytes from the source buffer; r=froydnj 2014-12-20 10:25:02 -05:00
Ehsan Akhgari
60b3090c10 Bug 1101337 - Make the ReplaceSubstring() XPCOM string API linear; r=froydnj
ReplaceSubstring() is an O(n*m) algorithm (n being the length of the
string and m being the number of occurrences of aTarget) because we have
to move the remainder of the string, search it again and potentially
memmove most of it again as we find more matches.  This patch rewrites
that function to make it O(n+m).

Note that we currently don't build TestStrings.cpp, so the test case in
this patch is not run automatically, but the test case has been verified
to pass separately by moving the test function into Gecko and calling it
during startup and stepping through it in the debugger.
2014-12-12 18:57:09 -05:00
Wes Kocher
dabb117549 Backed out changeset 95377313608b (bug 1101337) for linux debug build bustage 2014-12-12 16:34:43 -08:00
Ehsan Akhgari
f859fa7e98 Bug 1101337 - Make the ReplaceSubstring() XPCOM string API linear; r=froydnj
ReplaceSubstring() is an O(n*m) algorithm (n being the length of the
string and m being the number of occurrences of aTarget) because we have
to move the remainder of the string, search it again and potentially
memmove most of it again as we find more matches.  This patch rewrites
that function to make it O(n+m).

Note that we currently don't build TestStrings.cpp, so the test case in
this patch is not run automatically, but the test case has been verified
to pass separately by moving the test function into Gecko and calling it
during startup and stepping through it in the debugger.
2014-12-12 18:57:09 -05:00
Ehsan Akhgari
92e38be3c8 Backed out 2 changesets (bug 1101337) because of ASAN bustage landed on a CLOSED TREE
Backed out changeset ffef93ec94aa (bug 1101337)
Backed out changeset 2954a37bc2df (bug 1101337)
2014-12-12 13:04:44 -05:00
Ehsan Akhgari
d11a3a5d3b Bug 1101337 follow-up: Move the Segment class to nsTString_CharT in order to satisfy older gcc's used on b2g, landed on a CLOSED TREE to fix build bustage 2014-12-12 12:43:04 -05:00
Ehsan Akhgari
a90dd4dace Bug 1101337 - Make the ReplaceSubstring() XPCOM string API linear; r=froydnj
ReplaceSubstring() is an O(n*m) algorithm (n being the length of the
string and m being the number of occurrences of aTarget) because we have
to move the remainder of the string, search it again and potentially
memmove most of it again as we find more matches.  This patch rewrites
that function to make it O(n+m).

Note that we currently don't build TestStrings.cpp, so the test case in
this patch is not run automatically, but the test case has been verified
to pass separately by moving the test function into Gecko and calling it
during startup and stepping through it in the debugger.
2014-12-12 11:47:55 -05:00
David Major
d85f8b5439 Bug 1097283: Fix count/byte mismatches in NS_ABORT_OOM calls. r=froydnj 2014-11-12 21:13:44 +13:00
David Major
4954e07571 Backed out changeset 8a4595cc5ec4 for Linux build failure on a CLOESD TREE
just kidding it's a CLOSED TREE
2014-11-12 17:19:15 +13:00
David Major
3da2a00813 Bug 1097283: Fix count/byte mismatches in NS_ABORT_OOM calls. r=froydnj 2014-11-12 15:42:53 +13:00
Birunthan Mohanathas
2a49da1efa Bug 1028559 - Flatten xpcom/string/{public,src}/ directories. r=dbaron 2014-06-25 15:08:54 -07:00
Wes Kocher
777add5c77 Backed out 6 changesets (bug 1028559, bug 1028565) for android mochitest bustage on a CLOSED TREE
Backed out changeset fdd74c065e5d (bug 1028565)
Backed out changeset 5e9777d38052 (bug 1028565)
Backed out changeset 3510bcdba3fc (bug 1028565)
Backed out changeset 62ad3254903e (bug 1028565)
Backed out changeset e7557f70acfe (bug 1028565)
Backed out changeset 5b1b527abe47 (bug 1028559)
2014-06-24 18:32:55 -07:00
Birunthan Mohanathas
91694f185a Bug 1028559 - Flatten xpcom/string/{public,src}/ directories. r=dbaron 2014-06-21 08:56:57 -07:00