1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* vim: set ts=8 sts=4 et sw=4 tw=99: */
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
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef qsObjectHelper_h
8 #define qsObjectHelper_h
10 #include "xpcObjectHelper.h"
12 #include "nsAutoPtr.h"
14 #include "nsWrapperCache.h"
15 #include "mozilla/TypeTraits.h"
17 class qsObjectHelper
: public xpcObjectHelper
22 qsObjectHelper(T
* aObject
, nsWrapperCache
* aCache
)
23 : xpcObjectHelper(ToSupports(aObject
), ToCanonicalSupports(aObject
),
29 qsObjectHelper(nsCOMPtr
<T
>& aObject
, nsWrapperCache
* aCache
)
30 : xpcObjectHelper(ToSupports(aObject
.get()),
31 ToCanonicalSupports(aObject
.get()), aCache
)
34 // Transfer the strong reference.
35 mCanonicalStrong
= dont_AddRef(mCanonical
);
42 qsObjectHelper(nsRefPtr
<T
>& aObject
, nsWrapperCache
* aCache
)
43 : xpcObjectHelper(ToSupports(aObject
.get()),
44 ToCanonicalSupports(aObject
.get()), aCache
)
47 // Transfer the strong reference.
48 mCanonicalStrong
= dont_AddRef(mCanonical
);