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

Side by Side Diff: src/gpu/GrTemplates.h

Issue 1231163002: remove some unused stuff (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 5 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 unified diff | Download patch
« no previous file with comments | « src/gpu/GrTBSearch.h ('k') | tests/GrTBSearchTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2010 Google Inc. 2 * Copyright 2010 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef GrTemplates_DEFINED 8 #ifndef GrTemplates_DEFINED
9 #define GrTemplates_DEFINED 9 #define GrTemplates_DEFINED
10 10
11 #include "SkTypes.h" 11 #include "SkTypes.h"
12 12
13 /** 13 /**
14 * Use to cast a ptr to a different type, and maintain strict-aliasing 14 * Use to cast a ptr to a different type, and maintain strict-aliasing
15 */ 15 */
16 template <typename Dst, typename Src> Dst GrTCast(Src src) { 16 template <typename Dst, typename Src> Dst GrTCast(Src src) {
17 union { 17 union {
18 Src src; 18 Src src;
19 Dst dst; 19 Dst dst;
20 } data; 20 } data;
21 data.src = src; 21 data.src = src;
22 return data.dst; 22 return data.dst;
23 } 23 }
24 24
25 /**
26 * takes a T*, saves the value it points to, in and restores the value in the
27 * destructor
28 * e.g.:
29 * {
30 * GrAutoTRestore<int*> autoCountRestore;
31 * if (useExtra) {
32 * autoCountRestore.reset(&fCount);
33 * fCount += fExtraCount;
34 * }
35 * ...
36 * } // fCount is restored
37 */
38 template <typename T> class GrAutoTRestore : SkNoncopyable {
39 public:
40 GrAutoTRestore() : fPtr(NULL), fVal() {}
41
42 GrAutoTRestore(T* ptr) {
43 fPtr = ptr;
44 if (ptr) {
45 fVal = *ptr;
46 }
47 }
48
49 ~GrAutoTRestore() {
50 if (fPtr) {
51 *fPtr = fVal;
52 }
53 }
54
55 // restores previously saved value (if any) and saves value for passed T*
56 void reset(T* ptr) {
57 if (fPtr) {
58 *fPtr = fVal;
59 }
60 fPtr = ptr;
61 fVal = *ptr;
62 }
63 private:
64 T* fPtr;
65 T fVal;
66 };
67
68 #endif 25 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrTBSearch.h ('k') | tests/GrTBSearchTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698