OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h" | 5 #include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h" |
6 | 6 |
7 #import <AppKit/AppKit.h> | 7 #include <AppKit/AppKit.h> |
8 | |
9 #include "base/logging.h" | |
10 | 8 |
11 namespace gfx { | 9 namespace gfx { |
12 | 10 |
13 ScopedNSGraphicsContextSaveGState::ScopedNSGraphicsContextSaveGState() | 11 ScopedNSGraphicsContextSaveGState::ScopedNSGraphicsContextSaveGState( |
14 : context_([NSGraphicsContext currentContext]) { | 12 NSGraphicsContext* context) : context_([context retain]) { |
15 [NSGraphicsContext saveGraphicsState]; | 13 if (!context_) |
| 14 context_.reset([[NSGraphicsContext currentContext] retain]); |
| 15 [context_ saveGraphicsState]; |
16 } | 16 } |
17 | 17 |
18 ScopedNSGraphicsContextSaveGState::~ScopedNSGraphicsContextSaveGState() { | 18 ScopedNSGraphicsContextSaveGState::~ScopedNSGraphicsContextSaveGState() { |
19 [NSGraphicsContext restoreGraphicsState]; | 19 [context_ restoreGraphicsState]; |
20 DCHECK_EQ(context_, [NSGraphicsContext currentContext]); | |
21 } | 20 } |
22 | 21 |
23 } // namespace gfx | 22 } // namespace gfx |
OLD | NEW |