ECode CSurfaceTexture::constructor( /* [in] */ Boolean singleBufferMode) { mCreatorLooper = Looper::GetMyLooper(); AutoPtr<IWeakReference> wr; GetWeakReference((IWeakReference**)&wr); return NativeInit(TRUE, 0, singleBufferMode, wr); }
Interceptor::Interceptor(STAUniquePtr<IUnknown> aTarget, IInterceptorSink* aSink) : WeakReferenceSupport(WeakReferenceSupport::Flags::eDestroyOnMainThread) , mTarget(Move(aTarget)) , mEventSink(aSink) , mMutex("mozilla::mscom::Interceptor::mMutex") { MOZ_ASSERT(aSink); MOZ_ASSERT(!IsProxy(mTarget.get())); RefPtr<IWeakReference> weakRef; if (SUCCEEDED(GetWeakReference(getter_AddRefs(weakRef)))) { aSink->SetInterceptor(weakRef); } }
ECode CSoundPool::constructor( /* [in] */ Int32 maxStreams, /* [in] */ Int32 streamType, /* [in] */ Int32 srcQuality) { // do native setup AutoPtr<IWeakReference> wr; GetWeakReference((IWeakReference**)&wr); if (NativeSetup(wr.Get(), maxStreams, streamType, srcQuality) != 0) { Logger::E(TAG, "Native setup failed"); return E_RUNTIME_EXCEPTION; } return NOERROR; }