Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Unified Diff: compositor/gl/opengl_visitor.cc

Issue 6691037: wm: Fix an uncommon memory leak in the compositor code. (Closed) Base URL: ssh://gitrw.chromium.org:9222/window_manager.git@master
Patch Set: update another arg to be a const ref Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « compositor/gl/opengl_visitor.h ('k') | compositor/gles/opengles_visitor.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: compositor/gl/opengl_visitor.cc
diff --git a/compositor/gl/opengl_visitor.cc b/compositor/gl/opengl_visitor.cc
index 65558606abf9592ed73f3f0fa1e5a1796d63351d..1f903f048f154fbf8970ebcb0ce559755d4b6b9f 100644
--- a/compositor/gl/opengl_visitor.cc
+++ b/compositor/gl/opengl_visitor.cc
@@ -436,10 +436,10 @@ void OpenGlDrawVisitor::BindImage(const ImageContainer* container,
0, pixel_data_format, GL_UNSIGNED_BYTE,
container->data());
CHECK_GL_ERROR(gl_interface_);
- OpenGlTextureData* data = new OpenGlTextureData(gl_interface_);
+ scoped_ptr<OpenGlTextureData> data(new OpenGlTextureData(gl_interface_));
data->SetTexture(new_texture);
data->set_has_alpha(ImageFormatUsesAlpha(container->format()));
- actor->set_texture_data(data);
+ actor->set_texture_data(data.release());
}
void OpenGlDrawVisitor::VisitImage(RealCompositor::ImageActor* actor) {
@@ -468,13 +468,13 @@ void OpenGlDrawVisitor::VisitTexturePixmap(
return;
}
- OpenGlPixmapData* data = new OpenGlPixmapData(this);
+ scoped_ptr<OpenGlPixmapData> data(new OpenGlPixmapData(this));
if (!data->Init(actor)) {
PROFILER_MARKER_END(VisitTexturePixmap);
return;
}
data->set_has_alpha(!actor->pixmap_is_opaque());
- actor->set_texture_data(data);
+ actor->set_texture_data(data.release());
}
// All texture pixmaps are also QuadActors, and so we let the
@@ -717,7 +717,7 @@ void OpenGlDrawVisitor::VisitContainer(RealCompositor::ContainerActor* actor) {
<< ", opacity: " << child->opacity()
<< ", is_opaque: " << child->is_opaque() << ")";
#endif
-
+
// TODO: move this down into the Visit* functions
if (child->is_opaque() && child->opacity() * ancestor_opacity_ > 0.999)
gl_interface_->Disable(GL_BLEND);
« no previous file with comments | « compositor/gl/opengl_visitor.h ('k') | compositor/gles/opengles_visitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698