Commit Graph

40 Commits

Author SHA1 Message Date
Nicholas Nethercote
cd63c6bfee Bug 1261735 (part 3) - De-virtualize nsIAtom::IsStaticAtom(). r=froydnj,erahm.
This avoids the need for some virtual function calls and also will help lead to
distinct representations for dynamic and static atoms.

--HG--
extra : rebase_source : 16bbe6f1e1309ee3e4fab7a0d222e638178a2a9c
2016-04-06 11:28:40 +10:00
Nicholas Nethercote
e4dec8d42f Bug 1261735 (part 1) - Overhaul the atom implementation. r=froydnj,erahm.
This patch changes things so that dynamic atoms and static atoms have distinct
implementations. This is a step towards allowing dynamic atoms and static atoms
to have different layouts in memory, which will allow static atoms to be
represented more compactly.

Specifically, the patch does the following.

- It renames AtomImpl as DynamicAtom and PermanentAtomImpl as StaticAtom, and
  the latter is no longer a subclass of the former. This required duplicating
  some methods from the former into the latter: ScriptableToString(),
  ToUTF8String(), ScriptableEquals(), IsStaticAtom(). (This duplication will
  disappear in the future if the representations of dynamic atoms and static
  atoms diverge. Indeed, SizeOfIncludingThis() is already different in the two
  classes.)

- It replaces all mentions of "permanent"/"non-permanent" atoms with
  "static"/"dynamic".

- In ~DynamicAtom() it removes the check that causes gAtomTable to be deleted
  when it becomes empty. This will only happen at shutdown and so doesn't seem
  useful.

- It documents better various things, especially the basics of the
  dynamic/static split, the transmutation of dynamic atoms to static atoms, and
  the details of the SizeOf functions.

--HG--
extra : rebase_source : dbf903012e70ebf1a43de1e1088db1bc1b8dd4f4
2016-04-01 11:18:06 +11:00
Nicholas Nethercote
d376f9f82e Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm.
do_GetAtom() is currently just a synonym for NS_NewAtom().

--HG--
extra : rebase_source : f4409784f931616cbc300591e6b843d30805c273
2016-03-29 10:09:43 +11:00
Nicholas Nethercote
bbfe3dbc14 Bug 1257402 - Remove NS_NewPermanentAtom() and nsIAtomService.getPermanentAtom(). r=froydnj,kmag.
The former is only used inconsequentially in tests. The second is not used at
all.

--HG--
extra : rebase_source : 4cfe11f933f1fe8f788e823c5107941085cef92c
2016-03-17 13:11:31 +11:00
Nicholas Nethercote
41e924c6e0 Bug 1257128 (part 1) - Remove nsIAtom.equalsUTF8. r=froydnj.
It's only used in tests.
2016-03-16 21:05:30 +11:00
Nicholas Nethercote
d637d20fdf Bug 1250396 (part 1) - Document a subtle contraint on nsIAtom. r=froydnj.
--HG--
extra : rebase_source : d26b318240e504f170d5649f4c12eadf05c433b8
2016-02-17 11:30:02 +11:00
Nicholas Nethercote
ec89bbf7f2 Bug 1237151 (part 3) - Remove ignored qualifiers in all remaining code. r=froydnj. 2016-01-05 17:08:45 -08:00
Ehsan Akhgari
6011b07362 Bug 1015430 - Fix more XPCOM constructors to clarify whether they should be explicit; r=froydnj 2014-05-25 21:16:01 -04:00
Ehsan Akhgari
1b83407ce9 Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc
This patch was automatically generated by the following script:

#!/bin/bash
# Command to convert PRUnichar to char16_t

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*modules/libmar*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name prtypes.h \
       ! -name Char16.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRUnichar char16_t
2014-01-04 10:02:17 -05:00
Jacek Caban
e2cd5ba18b Bug 944905 - Fixed char16_t/wchar_t mismatch in xpcom/ r=bsmedberg 2013-12-04 13:19:09 +01:00
Aryeh Gregor
9c1f94b576 Bug 859817 - Make NS_NewAtom return already_AddRefed; r=bz 2013-04-22 14:13:22 +03:00
Boris Zbarsky
e5eec0dbd7 Bug 858671. Make do_GetAtom infallible. r=khuey 2013-04-08 17:04:21 -04:00
Boris Zbarsky
4c46810e1f Bug 834877 part 4. Add overloads of GetAttr() and GetId() that take a DOMString. r=peterv 2013-01-29 09:42:14 -05:00
Ehsan Akhgari
e368dc9c85 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Boris Zbarsky
b338b37cbf Bug 730414 followup comment to address review comments 2012-02-29 21:44:02 -05:00
Boris Zbarsky
a27156b93e Bug 730414. Expose a quick way to get a hash key for an atom. r=bsmedberg 2012-02-29 21:40:51 -05:00
Michael Wu
d2b70213ac Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Matheus Kerschbaum
8a4cb927fd Bug 678155 - Remove NS_COM. r=bsmedberg 2011-08-18 15:46:39 +02:00
Jonas Sicking
cfcfd3bcb2 Bug 661980: Add ability to make interfaces scriptable but not scriptimplementable. r=bsmedberg 2011-06-16 12:21:25 -07:00
Jonas Sicking
e1f58838d3 Bug 534136 Part 4: Inline accessors on nsIAtom. r=peterv sr=jst 2010-03-08 07:45:00 -08:00
Jonas Sicking
c7c7514f75 Bug 534136 Part 2: Use 16bit-char buffers inside atoms. r=bz sr=mrbkap 2010-03-08 07:45:00 -08:00
Jonas Sicking
c24e5442a9 Bug 534136 Part 1: Make atoms keep a pointer to an nsStringBuffer rather than storing the data inline. r=bsmedberg 2010-03-08 07:44:59 -08:00
Henri Sivonen
3ad04b51a7 Bug 514661 - Introduce scoped atom tables for the HTML5 parser. r=bsmedberg, sr=dbaron.
--HG--
extra : rebase_source : 12e9731c0d86691cde40fc1ea4cc5ab4b3fb5168
2009-09-18 18:13:10 +03:00
bsmedberg%covad.net
a7253270ad Bug 305949 Part 1 - Separate the frozen XPCOM exports with the XPCOM_API macro; add compatibility methods to the frozen string API; convert most of the tests/tools to use the xpcom glue when appropriate r=darin This checking does not actually stop exporting the nonfrozen methods yet, pending a bunch of test cleanup throughout the tree. 2005-11-08 18:17:49 +00:00
gerv%gerv.net
31625ba2b1 Bug 236613: change to MPL/LGPL/GPL tri-license. 2004-04-18 14:21:17 +00:00
jaggernaut%netscape.com
6d16320259 Bug 210160: Add nsStringComparator parameter to String(Begins)|(Ends)With. r=bzbarsky, sr=dbaron
Bug 210162: Fix up comments, argument names of atom getters in nsIAtom.idl. r=bzbarsky, sr=dbaron
2003-06-21 02:59:51 +00:00
alecf%netscape.com
8c50d0242a landing attempt #2 for 195262 - support for static atoms, and converting atoms over to UTF8 to reduce bloat - now without performance regressions!
sr=darin, r=dbaron
2003-03-25 18:55:59 +00:00
alecf%netscape.com
b6584a77fb backout my static atom patch for now until I figure out the performance loss! :(
bug 195262
2003-03-21 20:13:08 +00:00
alecf%netscape.com
ecf24a2b78 fix for bug 195262:
- convert atoms to UTF8 because 99% of the time, that is what they are used for
- add support for static atoms, where the strings are declared in a large const array and not copied into the heap
r=dbaron, sr=darin

this is an experimental landing - if there are performance issues, I will back it out.
2003-03-21 06:26:32 +00:00
dbaron%dbaron.org
6dd68f3c64 Remove nsISizeOfHandler and associated SizeOf methods. b=106792 r=bzbarsky sr=jst 2003-02-22 15:34:38 +00:00
dbaron%fas.harvard.edu
6cdcd7ef3a Convert users of nsAReadable[C]String and nsAWritable[C]String typedefs to [const] nsA[C]String. b=131899 r=scc sr=jag a=asa 2002-03-24 00:16:18 +00:00
dbaron%fas.harvard.edu
2fe76cd2ac Reduce the performance cost of (threadsafely) refcounting many atoms by creating a second implementation of nsIAtom (derived from the first) that does not refcount and gets destroyed at XPCOM shutdown. Normal atoms are converted to permanent ones without loss of pointer identity when a permanent atom is requested and a normal one already exists. b=92141 r=waterson sr=brendan 2001-10-20 23:19:07 +00:00
jst%netscape.com
9abec73fbe DOM string changes. All nsString& in DOM interfaces (and interfaces needed by DOM implementations) have been changed to nsAReadableString& and nsAWritableString&. String implementation additions (sanctioned by scc) to support DOM needs. Bug 49091. r=vidur,jst,scc 2000-08-23 17:27:06 +00:00
putterman%netscape.com
3295d7781f Fix for 24362. Status bar gets updated message counts. a=chofmann. r=dp and jband. 2000-01-20 22:57:08 +00:00
dmose%mozilla.org
142ac52eaf updated xPL license boilerplate to v1.1, a=chofmann@netscape.com,r=endico@mozilla.org 1999-11-06 03:43:54 +00:00
kipp%netscape.com
4f9c341b0c Allow atom table to be purged during shtudown 1999-09-30 21:40:00 +00:00
dougt%netscape.com
028f11d2bf Changes nsIAtom iterface to return a shared (non-allocated) wstring when
GetUnicode() is called.  (thanks waterson, jband)

Also fixing 12237.  (thanks jband).
1999-09-03 22:21:29 +00:00
kipp%netscape.com
948ad27a21 Reworked sizeof api's to be much more useful; updated implementations to match 1999-08-31 03:04:37 +00:00
dougt%netscape.com
8297def7db First cut of an IDL for nsIAtom. This preserves most of the origanal C++
interface quirks.
1999-08-21 06:38:59 +00:00