Commit Graph

58 Commits

Author SHA1 Message Date
Ehsan Akhgari
a9b1426983 Bug 1015430 - Fix more XPCOM constructors to clarify whether they should be explicit; r=froydnj 2014-05-25 21:16:01 -04:00
Nathan Froyd
e12481c9a7 Bug 984443 - get rid of #ifndef $OTHER_HEADER bits from xpcom/ as relics of a bygone era; r=ehsan 2014-03-17 12:20:47 -04:00
Kyle Huey
7067fb5db1 Bug 345123: Remove nsGetterAddRefs<T>'s operator nsISupports**. r=bsmedberg 2014-03-15 12:00:17 -07:00
Kyle Huey
84360900b0 Bug 967364: Pass already_AddRefed by reference instead of by value. r=bsmedberg 2014-03-15 12:00:17 -07:00
Kyle Huey
e78b977cbc Bug 967364: Use every already_AddRefed. r=bsmedberg 2014-03-15 12:00:16 -07:00
Kyle Huey
c49e590515 Bug 967364: Privatize already_AddRefed::mRawPtr. r=bsmedberg 2014-03-15 12:00:15 -07:00
Kyle Huey
510a49016d Bug 967364: Rename already_AddRefed::get to take. r=bsmedberg 2014-03-15 12:00:15 -07:00
L. David Baron
4f04bcdc57 Bug 976350 patch 1: Move the contents of nsTraceRefcnt.h into nsISupportsImpl.h. r=bsmedberg
This makes sense since the file no longer contains anything with the
nsTraceRefcnt name in it, and it will allow renaming nsTraceRefcntImpl
back to nsTraceRefcnt.
2014-02-26 13:36:35 -08:00
Nathan Froyd
a6e810d1ba Bug 976161 - delete dead NSCAP_DISABLE_TEST_DONTQUERY_CASES code; r=bsmedberg 2014-02-24 13:02:43 -05:00
Jeff Walden
b01c238639 Bug 953296 - Implement mozilla::NullptrT as a typedef to use to accept nullptr values. Also add mozilla::IsNullPointer<T>, a trait for detecting *only* true nullptr (emulated nullptr [__null] used by gcc 4.4/4.5 isn't true nullptr). r=ehsan
Generally, if you want a decltype(nullptr)-based overload, you should use SFINAE and IsNullPointer.  (Examples are provided in NullPtr.h comments.)  The problem is NullptrT matches far more than just __null as emulated nullptr for gcc 4.4/4.5 overloading purposes.  This problem is unavoidable without true nullptr.  Currently, the only valid use for NullptrT is believed to be in operator overloads.  All existing nullptr-overloading code has been rewritten to use the appropriate technique for the situation, and MOZ_HAVE_CXX11_NULLPTR is no longer an API.

--HG--
extra : rebase_source : 01abfcb66ae569db7b04a7b53f5cd5fd8151bffd
2014-01-02 17:27:41 -06:00
Birunthan Mohanathas
4dce3f3fa6 Bug 784739 - Switch from NULL to nullptr in xpcom/ (2/3); r=ehsan 2013-10-10 16:41:39 -04:00
Ehsan Akhgari
5ee21d6d3f Bug 895322 - Part 1: Replace the usages of MOZ_STATIC_ASSERT with C++11 static_assert; r=Waldo
This patch was mostly generated by running the following scripts on the codebase, with some
manual changes made afterwards:

# static_assert.sh
#!/bin/bash
# Command to convert an NSPR integer type to the equivalent standard integer type

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 "*.cc" \
         -o -iname "*.mm" \) | \
    xargs -n 1 `dirname $0`/assert_replacer.py #sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_STATIC_ASSERT static_assert
hg rev --no-backup mfbt/Assertions.h \
                   media/webrtc/signaling/src/sipcc/core/includes/ccapi.h \
                   modules/libmar/src/mar_private.h \
                   modules/libmar/src/mar.h


# assert_replacer.py
#!/usr/bin/python

import sys
import re

pattern = re.compile(r"\bMOZ_STATIC_ASSERT\b")

def replaceInPlace(fname):
  print fname
  f = open(fname, "rw+")
  lines = f.readlines()
  for i in range(0, len(lines)):
    while True:
      index = re.search(pattern, lines[i])
      if index != None:
        index = index.start()
        lines[i] = lines[i][0:index] + "static_assert" + lines[i][index+len("MOZ_STATIC_ASSERT"):]
        for j in range(i + 1, len(lines)):
          if lines[j].find("                 ", index) == index:
            lines[j] = lines[j][0:index] + lines[j][index+4:]
          else:
            break
      else:
        break
  f.seek(0, 0)
  f.truncate()
  f.write("".join(lines))
  f.close()

argc = len(sys.argv)
for i in range(1, argc):
  replaceInPlace(sys.argv[i])

--HG--
extra : rebase_source : 4b4a4047d82f2c205b9fad8d56dfc3f1afc0b045
2013-07-18 13:59:53 -04:00
Ms2ger
db26bfced0 Bug 213324 - Remove getter_AddRefs(T*); r=ehsan 2013-07-10 11:56:21 +02:00
Aryeh Gregor
99703ffbe7 Bug 859817 - Eliminate implicit conversion from raw pointer to already_AddRefed; r=bz sr=bsmedberg 2013-04-10 17:22:53 +03:00
Aryeh Gregor
659b807986 Bug 859817 - Remove implicit conversions from raw pointer to already_AddRefed; r=Ms2ger 2013-04-22 14:15:59 +03:00
Aryeh Gregor
eecc44edc5 Bug 859817 - Introduce already_AddRefed.downcast(); r=ehsan 2013-04-21 14:56:06 +03:00
Joshua Cranmer
a74766f285 Bug 856108 - Port static analyses to clang, part 2f: use MOZ_STACK_CLASS in xpcom. r=bsmedberg 2013-04-11 22:21:40 -05:00
Boris Zbarsky
07a59e8ded Bug 857645. Make it possible to copy-initialize an nsCOMPtr<T> from an already_AddRefed<U> as long as U inherits from T. r=ehsan 2013-04-03 22:33:34 -04:00
Phil Ringnalda
177cee569f Back out 8396d7543197 (bug 857645) for build bustage
CLOSED TREE
2013-04-04 22:27:19 -07:00
Boris Zbarsky
05d3fe3059 Bug 857645. Make it possible to copy-initialize an nsCOMPtr<T> from an already_AddRefed<U> as long as U inherits from T. r=ehsan 2013-04-05 00:57:39 -04:00
Trevor Saunders
e3b2aa92a5 bug 822717 - remove checks for old gcc r=glandium 2012-12-18 13:22:28 -05:00
Benoit Jacob
ee1217da86 Bug 806279 - CC macros refactoring: part 3: fold the TRAVERSE_NATIVE and AMBIGUOUS cases - r=mccr8,smaug 2012-11-15 02:32:39 -05:00
Benoit Jacob
4a50000d0e Bug 806279 - CC macros refactoring: part 1: implement type-generic CC UNLINK/TRAVERSE macros - r=mccr8,smaug 2012-11-15 02:32:39 -05:00
Makoto Kato
222556a3d5 Bug 786579 - Remove old MSVC (<=2003) support. r=khuey 2012-09-28 16:02:40 +09:00
Joshua Cranmer
4b8f318e78 Bug 773637 - Kill NS_SCRIPTABLE annotations, Part 1: Remove NS_*PARAM annotations. r=ehsan
--HG--
extra : rebase_source : a0b4bc50fece36d9a90fed61431635948bfa33b5
2012-07-06 15:14:07 -05:00
Ehsan Akhgari
04e53539b4 Backout changeset 34c8a2369cbc (bug 771266) because the fastcall annotation actually matters 2012-07-05 18:19:07 -04:00
Ehsan Akhgari
910d251f2f Bug 771266 - Part 2: Remove the fastcall annotation from ~nsCOMPtr_base, because it doesn't mean anything now that it's inline; irc-r=Neil 2012-07-05 16:26:59 -04:00
Ehsan Akhgari
32a035f454 Bug 771266 - Inline nsCOMPtr_base's destructor; r=jlebar 2012-07-05 15:12:13 -04:00
L. David Baron
9e9f3a474a Back out half of the previous patch for bug 709747, since the nsCOMPtr<nsISupports>::forget(nsISupports**) specialization is substantially different from nsCOMPtr<T>::forget(I**), and uses swap which already does the needed logging. 2012-06-29 22:50:45 -07:00
Kyle Huey
08ad5220dd Bug 709747: Fix COMPtr logging for .forget(). r=dbaron 2012-06-29 10:10:31 -07:00
Jonathan Watt
6380335603 Bug 767388 - Kill NS_DEBUG. r=bz.
--HG--
extra : rebase_source : d045208a26345712dbb4628c973c616cd9504f28
2012-06-25 20:59:42 +01:00
Gervase Markham
ca171eec44 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Marco Bonardo
13014e7f1c Bug 718999 - make "You can't dereference a NULL nsCOMPtr" assertions fatal.
r=bsmedberg
2012-01-24 20:37:48 +01:00
Ms2ger
87dae851e7 Bug 709747 - Support nsCOMPtr<T>::forget(I**); r=bsmedberg 2011-12-18 10:39:22 +01:00
Ehsan Akhgari
a544dace2d Bug 710473 - Backout the nsDerivedSafe part from bug 666414 to make PGO builds on Windows work again; r=roc (cause he volunteered) a=xul-diet 2011-12-13 20:03:24 -05:00
Andrew Quartey
faa8be8d82 Bug 706010 - Remove NS_SPECIALIZE_TEMPLATE and HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX; r=khuey a=cleanup/removal 2011-12-13 14:17:59 +00:00
Jeff Walden
3d8e7a0d23 Bug 707352 - Remove NS_FINAL_CLASS completely. r=cjones 2011-12-05 17:10:05 -05:00
Jeff Walden
19f38bafe5 Bug 704127 - Implement MOZ_FINAL as a modifier for classes and virtual member functions. r=cjones
--HG--
extra : rebase_source : d95a3b3e726f810f299314358ba8c5e23557698e
2011-11-20 22:21:16 -08:00
Ehsan Akhgari
7e4b277a75 Bug 689397 - Work around the broken-ness of gcc4.2 on Mac which causes the protection implemented in bug 666414 not take effect; r=bsmedberg 2011-09-26 20:45:25 -04:00
Aditya Bhatt
126fa835f9 Bug 689301 - Compile error in nsTimerImpl.cpp with gcc 4.6.0 on Fedora core 15 x64; r=espindola 2011-09-27 17:11:03 -04:00
Ehsan Akhgari
b542efd4e6 Bug 666414 - Prevent AddRef and Release from being called on the pointers wrapped in nsCOMPtr and nsRefPtr; r=bsmedberg 2011-09-16 16:22:44 -04:00
Matheus Kerschbaum
3bcb2143b6 Bug 680625 part 0b: Remove more workarounds for past century compilers. r=ted 2011-08-26 00:35:13 +01:00
Chris Jones
ccb97b45d7 Bug 570912: Allow already_AddRefed<T> to be coerced to already_AddRefed<U> when T can be coerced to U. r=dbaron 2010-06-21 15:35:49 -05:00
Boris Zbarsky
e02c1954a4 Bug 523651. Add a CallQueryInterface that works well with nsCOMPtr. r=bsmedberg 2009-10-23 16:24:47 -04:00
Peter Van der Beken
5027e033b5 Fix for bug 481677 (Avoid hash lookups in XPCWrappedNative::GetNewOrUsed). r=bz, sr=jst.
--HG--
extra : rebase_source : 6062975766022118372d2e52f81659f87276b8ec
2009-03-18 19:02:48 +01:00
Peter Van der Beken
69e9aba8c8 Backing out f385e435c082, fix for bug 481677 (Avoid hash lookups in XPCWrappedNative::GetNewOrUsed), to try to fix orange. 2009-03-19 14:05:26 +01:00
Peter Van der Beken
f6b313dc83 Fix for bug 481677 (Avoid hash lookups in XPCWrappedNative::GetNewOrUsed). r=bz, sr=jst.
--HG--
extra : rebase_source : 9e25f0d56df57d65559e18acd49412e3e164821e
2009-03-18 19:02:48 +01:00
Benjamin Smedberg
8e93542d35 Bug 469072 - Annotations in XPCOM, and a couple related code fixups, to make outparams spit out useful warnings, r=bent 2008-12-11 15:13:52 -05:00
Henry Jia
2b7c0d663c Bug 178189 - |nsCOMPtr|: do we still care about VC++4.2? and if not, can we remove this comment; r=(scc + benjamin) 2008-09-29 00:17:30 +02:00
Benjamin Smedberg
e8fa485944 From bug 449561, bug 445949, and others: let's just ditch nsDerivedSafe since the class of errors it's trying to protect against are uncommon in today's world. r=dbaron 2008-08-11 11:05:58 -04:00