| Index: skia/sgl/SkGlobals.cpp
|
| ===================================================================
|
| --- skia/sgl/SkGlobals.cpp (revision 16859)
|
| +++ skia/sgl/SkGlobals.cpp (working copy)
|
| @@ -1,92 +0,0 @@
|
| -/* libs/graphics/sgl/SkGlobals.cpp
|
| -**
|
| -** Copyright 2006, The Android Open Source Project
|
| -**
|
| -** Licensed under the Apache License, Version 2.0 (the "License");
|
| -** you may not use this file except in compliance with the License.
|
| -** You may obtain a copy of the License at
|
| -**
|
| -** http://www.apache.org/licenses/LICENSE-2.0
|
| -**
|
| -** Unless required by applicable law or agreed to in writing, software
|
| -** distributed under the License is distributed on an "AS IS" BASIS,
|
| -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -** See the License for the specific language governing permissions and
|
| -** limitations under the License.
|
| -*/
|
| -
|
| -#include "SkGlobals.h"
|
| -#include "SkThread.h"
|
| -
|
| -SkGlobals::Rec::~Rec()
|
| -{
|
| -}
|
| -
|
| -SkGlobals::Rec* SkGlobals::Find(uint32_t tag, Rec* (*create_proc)())
|
| -{
|
| - SkGlobals::BootStrap& bootstrap = SkGlobals::GetBootStrap();
|
| -
|
| - Rec* rec = bootstrap.fHead;
|
| - while (rec)
|
| - {
|
| - if (rec->fTag == tag)
|
| - return rec;
|
| - rec = rec->fNext;
|
| - }
|
| -
|
| - if (create_proc == NULL) // no create proc, just return not found
|
| - return NULL;
|
| -
|
| - // if we get here, we may need to create one. First grab the mutex, and
|
| - // search again, creating one if its not found the 2nd time.
|
| -
|
| - bootstrap.fMutex.acquire();
|
| -
|
| - // search again, now that we have the mutex. Odds are it won't be there, but we check again
|
| - // just in case it was added by another thread before we grabbed the mutex
|
| -
|
| - Rec*& head = bootstrap.fHead;
|
| - rec = head;
|
| - while (rec)
|
| - {
|
| - if (rec->fTag == tag)
|
| - break;
|
| - rec = rec->fNext;
|
| - }
|
| -
|
| - if (rec == NULL && (rec = create_proc()) != NULL)
|
| - {
|
| - rec->fTag = tag;
|
| - rec->fNext = head;
|
| - bootstrap.fHead = rec;
|
| - }
|
| -
|
| - bootstrap.fMutex.release();
|
| - return rec;
|
| -}
|
| -
|
| -void SkGlobals::Init()
|
| -{
|
| -}
|
| -
|
| -void SkGlobals::Term()
|
| -{
|
| - SkGlobals::BootStrap& bootstrap = SkGlobals::GetBootStrap();
|
| -
|
| - bootstrap.fMutex.acquire();
|
| -
|
| - Rec*& head = bootstrap.fHead;
|
| - Rec* rec = head;
|
| -
|
| - while (rec)
|
| - {
|
| - Rec* next = rec->fNext;
|
| - SkDELETE(rec);
|
| - rec = next;
|
| - }
|
| -
|
| - bootstrap.fHead = NULL;
|
| - bootstrap.fMutex.release();
|
| -}
|
| -
|
| -
|
|
|