summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhusky@google.com <husky@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-05 13:33:51 +0000
committerhusky@google.com <husky@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-05 13:33:51 +0000
commita2d451524eb8568b3e55b599645693b3d819a10c (patch)
tree6161b006635d4a24894564cfc7792385cd676f05
parent26333cbb1de1a723a889e13303895103a01baeb1 (diff)
downloadchromium_src-a2d451524eb8568b3e55b599645693b3d819a10c.zip
chromium_src-a2d451524eb8568b3e55b599645693b3d819a10c.tar.gz
chromium_src-a2d451524eb8568b3e55b599645693b3d819a10c.tar.bz2
Fix build error in release mode.
I used a mix of NDEBUG and DHECK, but I didn't realise that DCHECKs are still compiled in release builds, and that the try bots don't catch this. Updated to use base::NonThreadSafe, which is both simpler and safer. TBR=kbr@chromium.org Review URL: http://codereview.chromium.org/7834021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99650 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/renderer/gpu/renderer_gl_context.cc13
-rw-r--r--content/renderer/gpu/renderer_gl_context.h9
2 files changed, 7 insertions, 15 deletions
diff --git a/content/renderer/gpu/renderer_gl_context.cc b/content/renderer/gpu/renderer_gl_context.cc
index d085229..255bd13 100644
--- a/content/renderer/gpu/renderer_gl_context.cc
+++ b/content/renderer/gpu/renderer_gl_context.cc
@@ -10,7 +10,6 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/singleton.h"
#include "base/memory/weak_ptr.h"
-#include "base/message_loop.h"
#include "base/shared_memory.h"
#include "content/common/view_messages.h"
#include "content/renderer/gpu/command_buffer_proxy.h"
@@ -200,7 +199,7 @@ void RendererGLContext::SetContextLostCallback(
bool RendererGLContext::MakeCurrent(RendererGLContext* context) {
if (context) {
- DCHECK(MessageLoop::current() == context->message_loop_);
+ DCHECK(context->CalledOnValidThread());
gles2::SetGLContext(context->gles2_implementation_);
// Don't request latest error status from service. Just use the locally
@@ -281,11 +280,7 @@ RendererGLContext::RendererGLContext(GpuChannelHost* channel)
transfer_buffer_id_(-1),
gles2_implementation_(NULL),
last_error_(SUCCESS),
- frame_number_(0)
-#ifndef NDEBUG
- , message_loop_(MessageLoop::current())
-#endif
-{
+ frame_number_(0) {
DCHECK(channel);
}
@@ -296,7 +291,7 @@ bool RendererGLContext::Initialize(bool onscreen,
const char* allowed_extensions,
const int32* attrib_list,
const GURL& active_url) {
- DCHECK(MessageLoop::current() == message_loop_);
+ DCHECK(CalledOnValidThread());
DCHECK(size.width() >= 0 && size.height() >= 0);
TRACE_EVENT2("gpu", "RendererGLContext::Initialize",
"on_screen", onscreen, "num_pixels", size.GetArea());
@@ -420,7 +415,7 @@ bool RendererGLContext::Initialize(bool onscreen,
void RendererGLContext::Destroy() {
TRACE_EVENT0("gpu", "RendererGLContext::Destroy");
- DCHECK(MessageLoop::current() == message_loop_);
+ DCHECK(CalledOnValidThread());
SetParent(NULL);
if (gles2_implementation_) {
diff --git a/content/renderer/gpu/renderer_gl_context.h b/content/renderer/gpu/renderer_gl_context.h
index 33e8806..8b04fd2 100644
--- a/content/renderer/gpu/renderer_gl_context.h
+++ b/content/renderer/gpu/renderer_gl_context.h
@@ -14,12 +14,12 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/non_thread_safe.h"
#include "build/build_config.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/gfx/size.h"
class GpuChannelHost;
-class MessageLoop;
class CommandBufferProxy;
class GURL;
class Task;
@@ -32,7 +32,8 @@ class GLES2Implementation;
}
}
-class RendererGLContext : public base::SupportsWeakPtr<RendererGLContext> {
+class RendererGLContext : public base::SupportsWeakPtr<RendererGLContext>,
+ public base::NonThreadSafe {
public:
// These are the same error codes as used by EGL.
enum Error {
@@ -199,10 +200,6 @@ class RendererGLContext : public base::SupportsWeakPtr<RendererGLContext> {
gpu::gles2::GLES2Implementation* gles2_implementation_;
Error last_error_;
int frame_number_;
-#ifndef NDEBUG
- // Used to assert that this object is used on a single thread.
- MessageLoop* message_loop_;
-#endif
DISALLOW_COPY_AND_ASSIGN(RendererGLContext);
};