rsObjectBase.cpp revision 992a0b70d8fd7a14f0c57bc3c7e16c1f269a6609
1/* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "rsObjectBase.h" 18 19using namespace android; 20using namespace android::renderscript; 21 22ObjectBase::ObjectBase() 23{ 24 mRefCount = 0; 25 mName = NULL; 26} 27 28ObjectBase::~ObjectBase() 29{ 30 rsAssert(!mRefCount); 31} 32 33void ObjectBase::incRef() const 34{ 35 mRefCount ++; 36 //LOGV("ObjectBase %p inc ref %i", this, mRefCount); 37} 38 39void ObjectBase::decRef() const 40{ 41 rsAssert(mRefCount > 0); 42 mRefCount --; 43 //LOGV("ObjectBase %p dec ref %i", this, mRefCount); 44 if (!mRefCount) { 45 delete this; 46 } 47} 48 49void ObjectBase::setName(const char *name) 50{ 51 delete mName; 52 mName = NULL; 53 if (name) { 54 mName = new char[strlen(name) +1]; 55 strcpy(mName, name); 56 } 57} 58 59void ObjectBase::setName(const char *name, uint32_t len) 60{ 61 delete mName; 62 mName = NULL; 63 if (name) { 64 mName = new char[len + 1]; 65 memcpy(mName, name, len); 66 mName[len] = 0; 67 } 68} 69 70