rsObjectBase.cpp revision 992a0b70d8fd7a14f0c57bc3c7e16c1f269a6609
1326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams/* 2326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * Copyright (C) 2009 The Android Open Source Project 3326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * 4326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * you may not use this file except in compliance with the License. 6326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * You may obtain a copy of the License at 7326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * 8326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * 10326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * Unless required by applicable law or agreed to in writing, software 11326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * See the License for the specific language governing permissions and 14326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams * limitations under the License. 15326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams */ 16326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 17326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams#include "rsObjectBase.h" 18326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 19326e0ddf89e8df2837752fbfd7a014814b32082cJason Samsusing namespace android; 20326e0ddf89e8df2837752fbfd7a014814b32082cJason Samsusing namespace android::renderscript; 21326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 22326e0ddf89e8df2837752fbfd7a014814b32082cJason SamsObjectBase::ObjectBase() 23326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams{ 24326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams mRefCount = 0; 25a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams mName = NULL; 26326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams} 27326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 28326e0ddf89e8df2837752fbfd7a014814b32082cJason SamsObjectBase::~ObjectBase() 29326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams{ 30326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams rsAssert(!mRefCount); 31326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams} 32326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 33326e0ddf89e8df2837752fbfd7a014814b32082cJason Samsvoid ObjectBase::incRef() const 34326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams{ 35326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams mRefCount ++; 36992a0b70d8fd7a14f0c57bc3c7e16c1f269a6609Jason Sams //LOGV("ObjectBase %p inc ref %i", this, mRefCount); 37326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams} 38326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 39326e0ddf89e8df2837752fbfd7a014814b32082cJason Samsvoid ObjectBase::decRef() const 40326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams{ 41326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams rsAssert(mRefCount > 0); 42326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams mRefCount --; 43992a0b70d8fd7a14f0c57bc3c7e16c1f269a6609Jason Sams //LOGV("ObjectBase %p dec ref %i", this, mRefCount); 44326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams if (!mRefCount) { 45326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams delete this; 46326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams } 47326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams} 48326e0ddf89e8df2837752fbfd7a014814b32082cJason Sams 49a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Samsvoid ObjectBase::setName(const char *name) 50a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams{ 51a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams delete mName; 52a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams mName = NULL; 53a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams if (name) { 54a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams mName = new char[strlen(name) +1]; 55a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams strcpy(mName, name); 56a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams } 57a0a1b6fbece2eb8d72d788422ab3e5f58d5a9216Jason Sams} 58a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams 59a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Samsvoid ObjectBase::setName(const char *name, uint32_t len) 60a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams{ 61a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams delete mName; 62a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams mName = NULL; 63a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams if (name) { 64a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams mName = new char[len + 1]; 65a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams memcpy(mName, name, len); 66a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams mName[len] = 0; 67a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams } 68a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams} 69a4a54e42fc710a62b47cbcb9d64c34a190429d9eJason Sams 70