already_AddRefed<SharedSurfaceTextureClient> SharedSurfaceTextureClient::Create(UniquePtr<gl::SharedSurface> surf, gl::SurfaceFactory* factory, ClientIPCAllocator* aAllocator, TextureFlags aFlags) { if (!surf) { return nullptr; } TextureFlags flags = aFlags | TextureFlags::RECYCLE | surf->GetTextureFlags(); SharedSurfaceTextureData* data = new SharedSurfaceTextureData(Move(surf)); return MakeAndAddRef<SharedSurfaceTextureClient>(data, flags, aAllocator); }