11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2010 Google Inc. 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 101cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 111cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#ifndef GrRefCnt_DEFINED 121cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#define GrRefCnt_DEFINED 131cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 141cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "GrTypes.h" 151cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SkRefCnt.h" 161cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 171cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergertypedef SkRefCnt GrRefCnt; 181cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergertypedef SkAutoRef GrAutoRef; 191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergertypedef SkAutoUnref GrAutoUnref; 201cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 211cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#define GrSafeRef SkSafeRef 221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#define GrSafeUnref SkSafeUnref 231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#define GrSafeAssign(a, b) SkRefCnt_SafeAssign(a, b) 241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 251cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergertemplate<typename T> 261cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerstatic inline void GrSafeSetNull(T*& obj) { 271cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger if (NULL != obj) { 281cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger obj->unref(); 291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger obj = NULL; 301cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger } 311cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger} 321cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#endif 341cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 35