Commit Graph

50 Commits

Author SHA1 Message Date
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
benjamin@smedbergs.us
27523547f0 Bug 419624 - Build framework, basic usage, and testsuite for statically checking the codebase using gcc-dehydra, r=luser,dbaron,tglek 2008-02-27 11:28:13 -05:00
bent.mozilla@gmail.com
28d1174ece Bug 396369 - "Overload forget method on nsCOMPtr/nsRefPtr to work with out parameters". r=dbaron, sr=bsmedberg, a=damons. 2007-11-11 10:56:45 -08:00
cbarrett@mozilla.com
9cfd810589 Typo fix and poking tinderbox. No bug. 2007-10-29 22:51:33 -07:00
jwalden@mit.edu
f57320c98b Bug 348748 - Cleanup from the handful of patches which have landed since the initial landing that have readded cast macros; I intend to remove the rest of the instances Very Soon, all but certainly before the M8 freeze, so the macro definitions can be removed, again all but certainly before the M8 freeze, if people are okay with them being removed. Still r=bsmedberg, a=no-functionality-change 2007-09-04 23:41:35 -07:00
bent.mozilla@gmail.com
c1a27644d9 Bug 392493 - "Add forget() method to nsCOMPtr and nsRefPtr". r=dbaron, a=bzbarsky. 2007-08-28 16:37:22 -07:00
jwalden@mit.edu
e3c4baccae Bug 348748 - Replace all instances of NS_STATIC_CAST and friends with C++ casts (and simultaneously bitrot nearly every patch in existence). r=bsmedberg on the script that did this. Tune in next time for Macro Wars: Episode II: Attack on the LL_* Macros. 2007-07-08 00:08:04 -07:00
neil@parkwaycc.co.uk
06fbbde8b2 Slightly safer and neater fix for strict aliasing bug 351231 r+sr=dbaron 2007-03-23 13:26:20 -07:00
hg@mozilla.com
465265d0d4 Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00