Index: gpu/command_buffer/service/context_group.cc |
diff --git a/gpu/command_buffer/service/context_group.cc b/gpu/command_buffer/service/context_group.cc |
index fc42c1dd6d8f85fbfdbc2868a1bd97379ec01c51..5225896cfa9939cb563795f4b7b6a66870e83410 100644 |
--- a/gpu/command_buffer/service/context_group.cc |
+++ b/gpu/command_buffer/service/context_group.cc |
@@ -28,12 +28,12 @@ namespace gpu { |
namespace gles2 { |
ContextGroup::ContextGroup( |
- MailboxManager* mailbox_manager, |
- MemoryTracker* memory_tracker, |
- ShaderTranslatorCache* shader_translator_cache, |
- FeatureInfo* feature_info, |
+ const scoped_refptr<MailboxManager>& mailbox_manager, |
+ const scoped_refptr<MemoryTracker>& memory_tracker, |
+ const scoped_refptr<ShaderTranslatorCache>& shader_translator_cache, |
+ const scoped_refptr<FeatureInfo>& feature_info, |
bool bind_generates_resource) |
- : mailbox_manager_(mailbox_manager ? mailbox_manager : new MailboxManager), |
+ : mailbox_manager_(mailbox_manager), |
memory_tracker_(memory_tracker), |
shader_translator_cache_(shader_translator_cache), |
enforce_gl_minimums_(CommandLine::ForCurrentProcess()->HasSwitch( |
@@ -49,9 +49,13 @@ ContextGroup::ContextGroup( |
max_color_attachments_(1u), |
max_draw_buffers_(1u), |
program_cache_(NULL), |
- feature_info_(feature_info ? feature_info : new FeatureInfo), |
+ feature_info_(feature_info), |
draw_buffer_(GL_BACK) { |
{ |
+ if (!mailbox_manager_.get()) |
+ mailbox_manager_ = new MailboxManager; |
+ if (!feature_info.get()) |
+ feature_info_ = new FeatureInfo; |
TransferBufferManager* manager = new TransferBufferManager(); |
transfer_buffer_manager_.reset(manager); |
manager->Initialize(); |