content/canvas/src/ImageData.h

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* vim:set ts=2 sw=2 et tw=78: */
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     5  * You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #ifndef mozilla_dom_ImageData_h
     8 #define mozilla_dom_ImageData_h
    10 #include "nsIDOMCanvasRenderingContext2D.h"
    12 #include "mozilla/Attributes.h"
    13 #include "mozilla/dom/BindingUtils.h"
    14 #include "mozilla/dom/TypedArray.h"
    15 #include <stdint.h>
    17 #include "nsCycleCollectionParticipant.h"
    18 #include "nsISupportsImpl.h"
    19 #include "js/GCAPI.h"
    21 namespace mozilla {
    22 namespace dom {
    24 class ImageData MOZ_FINAL : public nsISupports
    25 {
    26 public:
    27   ImageData(uint32_t aWidth, uint32_t aHeight, JSObject& aData)
    28     : mWidth(aWidth)
    29     , mHeight(aHeight)
    30     , mData(&aData)
    31   {
    32     MOZ_COUNT_CTOR(ImageData);
    33     HoldData();
    34   }
    36   ~ImageData()
    37   {
    38     MOZ_COUNT_DTOR(ImageData);
    39     DropData();
    40   }
    42   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
    43   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(ImageData)
    45   static ImageData* Constructor(const GlobalObject& aGlobal,
    46                                 const uint32_t aWidth,
    47                                 const uint32_t aHeight,
    48                                 ErrorResult& aRv);
    50   static ImageData* Constructor(const GlobalObject& aGlobal,
    51                                 const Uint8ClampedArray& aData,
    52                                 const uint32_t aWidth,
    53                                 const Optional<uint32_t>& aHeight,
    54                                 ErrorResult& aRv);
    56   uint32_t Width() const
    57   {
    58     return mWidth;
    59   }
    60   uint32_t Height() const
    61   {
    62     return mHeight;
    63   }
    64   void GetData(JSContext* cx, JS::MutableHandle<JSObject*> aData) const
    65   {
    66     aData.set(GetDataObject());
    67   }
    68   JSObject* GetDataObject() const
    69   {
    70     JS::ExposeObjectToActiveJS(mData);
    71     return mData;
    72   }
    74   JSObject* WrapObject(JSContext* cx);
    76 private:
    77   void HoldData();
    78   void DropData();
    80   ImageData() MOZ_DELETE;
    82   uint32_t mWidth, mHeight;
    83   JS::Heap<JSObject*> mData;
    84 };
    86 } // namespace dom
    87 } // namespace mozilla
    89 #endif // mozilla_dom_ImageData_h

mercurial