Bug 551298, patch B: Replace uses of THEBES_INLINE_DECL_REFCOUNTING with NS_INLINE_DECL_REFCOUNTING. r=roc
☠☠ backed out by 50731f2bd852 ☠ ☠
authorDaniel Holbert <dholbert@cs.stanford.edu>
Thu, 01 Apr 2010 08:08:51 -0700
changeset 40092 29bc09de2f77959309d104ce26e3877f76c3d1e0
parent 40091 e94819033c77aab855f2661b9fe3d61c41bfa381
child 40093 afcaf3670c21042a3baa51fdd712f241725f37a5
child 40098 50731f2bd852892bc11944485f5f93e0c27fce4b
push idunknown
push userunknown
push dateunknown
reviewersroc
bugs551298
milestone1.9.3a4pre
Bug 551298, patch B: Replace uses of THEBES_INLINE_DECL_REFCOUNTING with NS_INLINE_DECL_REFCOUNTING. r=roc
content/svg/content/src/nsSVGMatrix.cpp
content/svg/content/src/nsSVGMatrix.h
gfx/layers/Layers.h
gfx/thebes/public/gfxASurface.h
gfx/thebes/public/gfxContext.h
gfx/thebes/public/gfxFont.h
gfx/thebes/public/gfxGdkNativeRenderer.h
gfx/thebes/public/gfxPath.h
gfx/thebes/public/gfxPattern.h
gfx/thebes/public/gfxRect.h
gfx/thebes/public/gfxTypes.h
gfx/thebes/public/gfxUserFontSet.h
gfx/thebes/src/gfxFontconfigUtils.h
gfx/thebes/src/gfxPangoFonts.cpp
layout/printing/nsPrintData.h
--- a/content/svg/content/src/nsSVGMatrix.cpp
+++ b/content/svg/content/src/nsSVGMatrix.cpp
@@ -36,16 +36,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #include "nsSVGMatrix.h"
 #include "nsDOMError.h"
 #include "nsSVGValue.h"
 #include <math.h>
 #include "nsContentUtils.h"
+#include "nsISupportsImpl.h"
 
 const double radPerDegree = 2.0*3.1415926535 / 360.0;
 
 class nsSVGMatrix : public nsIDOMSVGMatrix,
                     public nsSVGValue
 {
 public:
   nsSVGMatrix(float a, float b, float c, float d, float e, float f);
--- a/content/svg/content/src/nsSVGMatrix.h
+++ b/content/svg/content/src/nsSVGMatrix.h
@@ -66,16 +66,17 @@
  * up.
  */
 
 #ifndef __NS_SVGMATRIX_H__
 #define __NS_SVGMATRIX_H__
 
 #include "nsIDOMSVGMatrix.h"
 #include "gfxMatrix.h"
+#include "nsAutoPtr.h"
 
 nsresult
 NS_NewSVGMatrix(nsIDOMSVGMatrix** result,
                 float a = 1.0f, float b = 0.0f,
                 float c = 0.0f, float d = 1.0f,
                 float e = 0.0f, float f = 0.0f);
 
 already_AddRefed<nsIDOMSVGMatrix>
--- a/gfx/layers/Layers.h
+++ b/gfx/layers/Layers.h
@@ -37,16 +37,18 @@
 
 #ifndef GFX_LAYERS_H
 #define GFX_LAYERS_H
 
 #include "gfxTypes.h"
 #include "nsRegion.h"
 #include "nsPoint.h"
 #include "nsRect.h"
+#include "nsISupportsImpl.h"
+#include "nsAutoPtr.h"
 #include "gfx3DMatrix.h"
 
 class gfxContext;
 class nsPaintEvent;
 
 namespace mozilla {
 namespace layers {
 
@@ -101,17 +103,17 @@ class ImageContainer;
  * call EndTransaction to complete the transaction.
  * 
  * All layer API calls happen on the main thread.
  * 
  * Layers are refcounted. The layer manager holds a reference to the
  * root layer, and each container layer holds a reference to its children.
  */
 class THEBES_API LayerManager {
-  THEBES_INLINE_DECL_REFCOUNTING(LayerManager)  
+  NS_INLINE_DECL_REFCOUNTING(LayerManager)
 
 public:
   enum LayersBackend {
     LAYERS_BASIC = 0,
     LAYERS_OPENGL
   };
 
   virtual ~LayerManager() {}
@@ -176,17 +178,17 @@ public:
   virtual LayersBackend GetBackendType() = 0;
 };
 
 /**
  * A Layer represents anything that can be rendered onto a destination
  * surface.
  */
 class THEBES_API Layer {
-  THEBES_INLINE_DECL_REFCOUNTING(Layer)  
+  NS_INLINE_DECL_REFCOUNTING(Layer)  
 
 public:
   virtual ~Layer() {}
 
   /**
    * Returns the LayoutManager this Layer belongs to. Cannot be null.
    */
   LayerManager* Manager() { return mManager; }
--- a/gfx/thebes/public/gfxASurface.h
+++ b/gfx/thebes/public/gfxASurface.h
@@ -35,16 +35,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef GFX_ASURFACE_H
 #define GFX_ASURFACE_H
 
 #include "gfxTypes.h"
 #include "gfxRect.h"
+#include "nsAutoPtr.h"
 
 typedef struct _cairo_surface cairo_surface_t;
 typedef struct _cairo_user_data_key cairo_user_data_key_t;
 
 typedef void (*thebes_destroy_func_t) (void *data);
 
 class gfxImageSurface;
 
--- a/gfx/thebes/public/gfxContext.h
+++ b/gfx/thebes/public/gfxContext.h
@@ -43,16 +43,17 @@
 
 #include "gfxASurface.h"
 #include "gfxColor.h"
 #include "gfxPoint.h"
 #include "gfxRect.h"
 #include "gfxMatrix.h"
 #include "gfxPattern.h"
 #include "gfxPath.h"
+#include "nsISupportsImpl.h"
 
 typedef struct _cairo cairo_t;
 
 /**
  * This is the main class for doing actual drawing. It is initialized using
  * a surface and can be drawn on. It manages various state information like
  * a current transformation matrix (CTM), a current path, current color,
  * etc.
@@ -61,17 +62,17 @@ typedef struct _cairo cairo_t;
  * The functions like Rectangle and Arc do not do any drawing themselves.
  * When a path is drawn (stroked or filled), it is filled/stroked with a
  * pattern set by SetPattern, SetColor or SetSource.
  *
  * Note that the gfxContext takes coordinates in device pixels,
  * as opposed to app units.
  */
 class THEBES_API gfxContext {
-    THEBES_INLINE_DECL_REFCOUNTING(gfxContext)
+    NS_INLINE_DECL_REFCOUNTING(gfxContext)
 
 public:
     /**
      * Initialize this context from a surface.
      */
     gfxContext(gfxASurface *surface);
     ~gfxContext();
 
--- a/gfx/thebes/public/gfxFont.h
+++ b/gfx/thebes/public/gfxFont.h
@@ -50,16 +50,17 @@
 #include "nsTHashtable.h"
 #include "nsHashKeys.h"
 #include "gfxSkipChars.h"
 #include "gfxRect.h"
 #include "nsExpirationTracker.h"
 #include "gfxFontConstants.h"
 #include "gfxPlatform.h"
 #include "nsIAtom.h"
+#include "nsISupportsImpl.h"
 
 #ifdef DEBUG
 #include <stdio.h>
 #endif
 
 class gfxContext;
 class gfxTextRun;
 class gfxFont;
@@ -155,17 +156,17 @@ struct THEBES_API gfxFontStyle {
             (stretch == other.stretch) &&
             (language == other.language) &&
             (sizeAdjust == other.sizeAdjust);
     }
 };
 
 class gfxFontEntry {
 public:
-    THEBES_INLINE_DECL_REFCOUNTING(gfxFontEntry)
+    NS_INLINE_DECL_REFCOUNTING(gfxFontEntry)
 
     gfxFontEntry(const nsAString& aName, gfxFontFamily *aFamily = nsnull,
                  PRBool aIsStandardFace = PR_FALSE) : 
         mName(aName), mItalic(PR_FALSE), mFixedPitch(PR_FALSE),
         mIsProxy(PR_FALSE), mIsValid(PR_TRUE), 
         mIsBadUnderlineFont(PR_FALSE), mIsUserFont(PR_FALSE),
         mStandardFace(aIsStandardFace),
         mSymbolFont(PR_FALSE),
@@ -284,17 +285,17 @@ struct FontSearch {
     const PRUint32         mCh;
     gfxFont*               mFontToMatch;
     PRInt32                mMatchRank;
     nsRefPtr<gfxFontEntry> mBestMatch;
 };
 
 class gfxFontFamily {
 public:
-    THEBES_INLINE_DECL_REFCOUNTING(gfxFontFamily)
+    NS_INLINE_DECL_REFCOUNTING(gfxFontFamily)
 
     gfxFontFamily(const nsAString& aName) :
         mName(aName),
         mOtherFamilyNamesInitialized(PR_FALSE),
         mHasOtherFamilyNames(PR_FALSE),
         mFaceNamesInitialized(PR_FALSE),
         mHasStyles(PR_FALSE),
         mIsSimpleFamily(PR_FALSE),
@@ -950,17 +951,17 @@ protected:
     nsAutoPtr<gfxFontShaper>   mShaper;
 
     // some fonts have bad metrics, this method sanitize them.
     // if this font has bad underline offset, aIsBadUnderlineFont should be true.
     void SanitizeMetrics(gfxFont::Metrics *aMetrics, PRBool aIsBadUnderlineFont);
 };
 
 class THEBES_API gfxTextRunFactory {
-    THEBES_INLINE_DECL_REFCOUNTING(gfxTextRunFactory)
+    NS_INLINE_DECL_REFCOUNTING(gfxTextRunFactory)
 
 public:
     // Flags in the mask 0xFFFF0000 are reserved for textrun clients
     // Flags in the mask 0x0000F000 are reserved for per-platform fonts
     // Flags in the mask 0x00000FFF are set by the textrun creator.
     enum {
         CACHE_TEXT_FLAGS    = 0xF0000000,
         USER_TEXT_FLAGS     = 0x0FFF0000,
--- a/gfx/thebes/public/gfxGdkNativeRenderer.h
+++ b/gfx/thebes/public/gfxGdkNativeRenderer.h
@@ -34,16 +34,17 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef GFXGDKNATIVERENDER_H_
 #define GFXGDKNATIVERENDER_H_
 
 #include "gfxColor.h"
+#include "nsAutoPtr.h"
 #include <gdk/gdk.h>
 
 class gfxASurface;
 class gfxContext;
 
 /**
  * This class lets us take code that draws into an GDK drawable and lets us
  * use it to draw into any Thebes context. The user should subclass this class,
--- a/gfx/thebes/public/gfxPath.h
+++ b/gfx/thebes/public/gfxPath.h
@@ -33,27 +33,28 @@
  * the terms of any one of the MPL, the GPL or the LGPL.
  *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef GFX_PATH_H
 #define GFX_PATH_H
 
 #include "gfxTypes.h"
+#include "nsISupportsImpl.h"
 
 class gfxContext;
 struct gfxPoint;
 typedef struct cairo_path cairo_path_t;
 
 /**
  * Class representing a path. Can be created by copying the current path
  * of a gfxContext.
  */
 class THEBES_API gfxPath {
-    THEBES_INLINE_DECL_REFCOUNTING(gfxPath)
+    NS_INLINE_DECL_REFCOUNTING(gfxPath)
 
     friend class gfxContext;
 
 protected:
     gfxPath(cairo_path_t* aPath);
 
 public:
     virtual ~gfxPath();
--- a/gfx/thebes/public/gfxPattern.h
+++ b/gfx/thebes/public/gfxPattern.h
@@ -37,24 +37,26 @@
 
 #ifndef GFX_PATTERN_H
 #define GFX_PATTERN_H
 
 #include "gfxTypes.h"
 
 #include "gfxColor.h"
 #include "gfxMatrix.h"
+#include "nsISupportsImpl.h"
+#include "nsAutoPtr.h"
 
 class gfxContext;
 class gfxASurface;
 typedef struct _cairo_pattern cairo_pattern_t;
 
 
 class THEBES_API gfxPattern {
-    THEBES_INLINE_DECL_REFCOUNTING(gfxPattern)
+    NS_INLINE_DECL_REFCOUNTING(gfxPattern)
 
 public:
     gfxPattern(cairo_pattern_t *aPattern);
     gfxPattern(const gfxRGBA& aColor);
     gfxPattern(gfxASurface *surface); // from another surface
     // linear
     gfxPattern(gfxFloat x0, gfxFloat y0, gfxFloat x1, gfxFloat y1); // linear
     gfxPattern(gfxFloat cx0, gfxFloat cy0, gfxFloat radius0,
--- a/gfx/thebes/public/gfxRect.h
+++ b/gfx/thebes/public/gfxRect.h
@@ -35,16 +35,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 
 #ifndef GFX_RECT_H
 #define GFX_RECT_H
 
 #include "gfxTypes.h"
 #include "gfxPoint.h"
+#include "nsDebug.h" 
 
 struct THEBES_API gfxCorner {
     typedef int Corner;
     enum {
         // this order is important!
         TOP_LEFT = 0,
         TOP_RIGHT = 1,
         BOTTOM_RIGHT = 2,
--- a/gfx/thebes/public/gfxTypes.h
+++ b/gfx/thebes/public/gfxTypes.h
@@ -85,26 +85,16 @@ typedef double gfxFloat;
  * @see nsLineLayout::NotifyOptionalBreakPosition
  */
 enum gfxBreakPriority {
     eNoBreak       = 0,
     eWordWrapBreak,
     eNormalBreak
 };
 
-/**
- * Define refcounting for Thebes.  For now use the stuff from nsISupportsImpl
- * even though it forces the functions to be virtual...
- */
-#include "nsISupportsImpl.h"
-#include "nsAutoPtr.h"
-
-#define THEBES_INLINE_DECL_REFCOUNTING(_class)                                \
-    NS_INLINE_DECL_REFCOUNTING(_class)
-
 #define THEBES_INLINE_DECL_THREADSAFE_REFCOUNTING(_class)                     \
 public:                                                                       \
     nsrefcnt AddRef(void) {                                                   \
         NS_PRECONDITION(PRInt32(mRefCnt) >= 0, "illegal refcnt");             \
         nsrefcnt count = PR_AtomicIncrement((PRInt32*)&mRefCnt);              \
         NS_LOG_ADDREF(this, count, #_class, sizeof(*this));                   \
         return count;                                                         \
     }                                                                         \
--- a/gfx/thebes/public/gfxUserFontSet.h
+++ b/gfx/thebes/public/gfxUserFontSet.h
@@ -41,16 +41,17 @@
 #include "gfxTypes.h"
 #include "gfxFont.h"
 #include "gfxFontUtils.h"
 #include "nsRefPtrHashtable.h"
 #include "nsAutoPtr.h"
 #include "nsCOMPtr.h"
 #include "nsIURI.h"
 #include "nsIFile.h"
+#include "nsISupportsImpl.h"
 
 class nsIURI;
 class gfxMixedFontFamily;
 
 // parsed CSS @font-face rule information
 // lifetime: from when @font-face rule processed until font is loaded
 struct gfxFontFaceSrc {
     PRPackedBool           mIsLocal;       // url or local
@@ -133,17 +134,17 @@ public:
 };
 
 class gfxProxyFontEntry;
 
 class THEBES_API gfxUserFontSet {
 
 public:
 
-    THEBES_INLINE_DECL_REFCOUNTING(gfxUserFontSet)
+    NS_INLINE_DECL_REFCOUNTING(gfxUserFontSet)
 
     gfxUserFontSet();
     virtual ~gfxUserFontSet();
 
     enum {
         // no flags ==> no hint set
         // unknown ==> unknown format hint set
         FLAG_FORMAT_UNKNOWN        = 1,
--- a/gfx/thebes/src/gfxFontconfigUtils.h
+++ b/gfx/thebes/src/gfxFontconfigUtils.h
@@ -39,16 +39,17 @@
 #ifndef GFX_FONTCONFIG_UTILS_H
 #define GFX_FONTCONFIG_UTILS_H
 
 #include "gfxPlatform.h"
 
 #include "nsAutoRef.h"
 #include "nsTArray.h"
 #include "nsTHashtable.h"
+#include "nsISupportsImpl.h"
 
 #include <fontconfig/fontconfig.h>
 
 
 NS_SPECIALIZE_TEMPLATE
 class nsAutoRefTraits<FcPattern> : public nsPointerRefTraits<FcPattern>
 {
 public:
@@ -82,17 +83,17 @@ class gfxIgnoreCaseCStringComparator
     { 
       return a < b;
     }
 };
 
 class gfxFontNameList : public nsTArray<nsString>
 {
 public:
-    THEBES_INLINE_DECL_REFCOUNTING(gfxFontNameList)
+    NS_INLINE_DECL_REFCOUNTING(gfxFontNameList)
     PRBool Exists(nsAString& aName);
 };
 
 class gfxFontconfigUtils {
 public:
     gfxFontconfigUtils();
 
     static gfxFontconfigUtils* GetFontconfigUtils() {
--- a/gfx/thebes/src/gfxPangoFonts.cpp
+++ b/gfx/thebes/src/gfxPangoFonts.cpp
@@ -930,17 +930,17 @@ GetFontGroup(PangoContext *aContext)
  * gfxFcPangoFontSet:
  *
  * Translation from a desired FcPattern to a sorted set of font references
  * (fontconfig cache data) and (when needed) PangoFonts.
  */
 
 class gfxFcPangoFontSet {
 public:
-    THEBES_INLINE_DECL_REFCOUNTING(gfxFcPangoFontSet)
+    NS_INLINE_DECL_REFCOUNTING(gfxFcPangoFontSet)
     
     explicit gfxFcPangoFontSet(FcPattern *aPattern,
                                gfxUserFontSet *aUserFontSet)
         : mSortPattern(aPattern), mUserFontSet(aUserFontSet),
           mFcFontSet(SortPreferredFonts()), mFcFontsTrimmed(0),
           mHaveFallbackFonts(PR_FALSE)
     {
     }
--- a/layout/printing/nsPrintData.h
+++ b/layout/printing/nsPrintData.h
@@ -39,16 +39,17 @@
 
 // Interfaces
 #include "nsIDOMWindow.h"
 #include "nsIDeviceContext.h"
 #include "nsIPrintProgressParams.h"
 #include "nsIPrintOptions.h"
 #include "nsTArray.h"
 #include "nsCOMArray.h"
+#include "nsAutoPtr.h"
 
 // Classes
 class nsPrintObject;
 class nsPrintPreviewListener;
 class nsIWebProgressListener;
 
 //------------------------------------------------------------------------
 // nsPrintData Class