Chromium Code Reviews| Index: cc/surfaces/sequence_surface_reference_factory.cc |
| diff --git a/cc/surfaces/sequence_surface_reference_factory.cc b/cc/surfaces/sequence_surface_reference_factory.cc |
| index 3d5b6e25627455e308754504b1d68bec4aafd518..c06f17c9dcd680b90e0db7ed5e5506d06a9b5658 100644 |
| --- a/cc/surfaces/sequence_surface_reference_factory.cc |
| +++ b/cc/surfaces/sequence_surface_reference_factory.cc |
| @@ -4,29 +4,20 @@ |
| #include "cc/surfaces/sequence_surface_reference_factory.h" |
| +#include "base/bind.h" |
| #include "base/memory/ptr_util.h" |
| -#include "cc/surfaces/sequence_surface_reference.h" |
| + |
| +#include "cc/surfaces/surface_sequence.h" |
| namespace cc { |
| -std::unique_ptr<SurfaceReferenceBase> |
| -SequenceSurfaceReferenceFactory::CreateReference( |
| +base::Closure SequenceSurfaceReferenceFactory::CreateReference( |
| SurfaceReferenceOwner* owner, |
| const SurfaceId& surface_id) const { |
| auto seq = owner->GetSurfaceSequenceGenerator()->CreateSurfaceSequence(); |
| RequireSequence(surface_id, seq); |
| - return base::MakeUnique<SequenceSurfaceReference>(make_scoped_refptr(this), |
| - seq); |
| -} |
| - |
| -void SequenceSurfaceReferenceFactory::DestroyReference( |
| - SurfaceReferenceBase* surface_ref) const { |
| - // This method can only be called by a SurfaceReferenceBase because it's |
| - // private and only SurfaceReferenceBase is a friend. The reference only |
| - // calls this method on the factory that created it. So it's safe to cast |
| - // the passed reference to the type returned by CreateReference. |
| - auto ref = static_cast<SequenceSurfaceReference*>(surface_ref); |
| - SatisfySequence(ref->sequence()); |
| + return base::Bind(&SequenceSurfaceReferenceFactory::SatisfySequence, this, |
|
danakj
2017/01/10 21:12:06
This still binds the lifetime of |this| to the cal
|
| + seq); |
| } |
| } // namespace cc |