am 4c7d3f28: Merge "Remove dead code: NIOBuffer." into gingerbread

Merge commit '4c7d3f28898f4e0d8e9f54537fb92948e650df7f' into gingerbread-plus-aosp

* commit '4c7d3f28898f4e0d8e9f54537fb92948e650df7f':
  Remove dead code: NIOBuffer.
This commit is contained in:
Elliott Hughes
2010-09-08 10:32:38 -07:00
committed by Android Git Automerger
4 changed files with 0 additions and 174 deletions

View File

@ -92,7 +92,6 @@ LOCAL_SRC_FILES:= \
android/graphics/MaskFilter.cpp \
android/graphics/Matrix.cpp \
android/graphics/Movie.cpp \
android/graphics/NIOBuffer.cpp \
android/graphics/NinePatch.cpp \
android/graphics/NinePatchImpl.cpp \
android/graphics/Paint.cpp \

View File

@ -2,7 +2,6 @@
#include "jni.h"
#include "GraphicsJNI.h"
#include "NIOBuffer.h"
#include "SkPicture.h"
#include "SkRegion.h"
#include <android_runtime/AndroidRuntime.h>
@ -650,8 +649,6 @@ int register_android_graphics_Graphics(JNIEnv* env)
gVMRuntime_trackExternalFreeMethodID =
env->GetMethodID(c, "trackExternalFree", "(J)V");
NIOBuffer::RegisterJNI(env);
return 0;
}

View File

@ -1,143 +0,0 @@
#include "NIOBuffer.h"
#include "GraphicsJNI.h"
// enable this to dump each time we ref/unref a global java object (buffer)
//
//#define TRACE_GLOBAL_REFS
//#define TRACE_ARRAY_LOCKS
static jclass gNIOAccess_classID;
static jmethodID gNIOAccess_getBasePointer;
static jmethodID gNIOAccess_getBaseArray;
static jmethodID gNIOAccess_getBaseArrayOffset;
static jmethodID gNIOAccess_getRemainingBytes;
void NIOBuffer::RegisterJNI(JNIEnv* env) {
if (0 != gNIOAccess_classID) {
return; // already called
}
jclass c = env->FindClass("java/nio/NIOAccess");
gNIOAccess_classID = (jclass)env->NewGlobalRef(c);
gNIOAccess_getBasePointer = env->GetStaticMethodID(gNIOAccess_classID,
"getBasePointer", "(Ljava/nio/Buffer;)J");
gNIOAccess_getBaseArray = env->GetStaticMethodID(gNIOAccess_classID,
"getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
gNIOAccess_getBaseArrayOffset = env->GetStaticMethodID(gNIOAccess_classID,
"getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
gNIOAccess_getRemainingBytes = env->GetStaticMethodID(gNIOAccess_classID,
"getRemainingBytes", "(Ljava/nio/Buffer;)I");
}
///////////////////////////////////////////////////////////////////////////////
#ifdef TRACE_GLOBAL_REFS
static int gGlobalRefs;
#endif
#ifdef TRACE_ARRAY_LOCKS
static int gLockCount;
#endif
NIOBuffer::NIOBuffer(JNIEnv* env, jobject buffer) {
fBuffer = env->NewGlobalRef(buffer);
#ifdef TRACE_GLOBAL_REFS
SkDebugf("------------ newglobalref bbuffer %X %d\n", buffer, gGlobalRefs++);
#endif
fLockedPtr = NULL;
fLockedArray = NULL;
}
NIOBuffer::~NIOBuffer() {
// free() needs to have already been called
if (NULL != fBuffer) {
SkDebugf("----- leaked fBuffer in NIOBuffer");
sk_throw();
}
}
void NIOBuffer::free(JNIEnv* env) {
if (NULL != fLockedPtr) {
SkDebugf("======= free: array still locked %x %p\n", fLockedArray, fLockedPtr);
}
if (NULL != fBuffer) {
#ifdef TRACE_GLOBAL_REFS
SkDebugf("----------- deleteglobalref buffer %X %d\n", fBuffer, --gGlobalRefs);
#endif
env->DeleteGlobalRef(fBuffer);
fBuffer = NULL;
}
}
void* NIOBuffer::lock(JNIEnv* env, int* remaining) {
if (NULL != fLockedPtr) {
SkDebugf("======= lock: array still locked %x %p\n", fLockedArray, fLockedPtr);
}
fLockedPtr = NULL;
fLockedArray = NULL;
if (NULL != remaining) {
*remaining = env->CallStaticIntMethod(gNIOAccess_classID,
gNIOAccess_getRemainingBytes,
fBuffer);
if (GraphicsJNI::hasException(env)) {
return NULL;
}
}
jlong pointer = env->CallStaticLongMethod(gNIOAccess_classID,
gNIOAccess_getBasePointer,
fBuffer);
if (GraphicsJNI::hasException(env)) {
return NULL;
}
if (0 != pointer) {
return reinterpret_cast<void*>(pointer);
}
fLockedArray = (jbyteArray)env->CallStaticObjectMethod(gNIOAccess_classID,
gNIOAccess_getBaseArray,
fBuffer);
if (GraphicsJNI::hasException(env) || NULL == fLockedArray) {
return NULL;
}
jint offset = env->CallStaticIntMethod(gNIOAccess_classID,
gNIOAccess_getBaseArrayOffset,
fBuffer);
fLockedPtr = env->GetByteArrayElements(fLockedArray, NULL);
if (GraphicsJNI::hasException(env)) {
SkDebugf("------------ failed to lockarray %x\n", fLockedArray);
return NULL;
}
#ifdef TRACE_ARRAY_LOCKS
SkDebugf("------------ lockarray %x %p %d\n",
fLockedArray, fLockedPtr, gLockCount++);
#endif
if (NULL == fLockedPtr) {
offset = 0;
}
return (char*)fLockedPtr + offset;
}
void NIOBuffer::unlock(JNIEnv* env, bool dataChanged) {
if (NULL != fLockedPtr) {
#ifdef TRACE_ARRAY_LOCKS
SkDebugf("------------ unlockarray %x %p %d\n",
fLockedArray, fLockedPtr, --gLockCount);
#endif
env->ReleaseByteArrayElements(fLockedArray, (jbyte*)fLockedPtr,
dataChanged ? 0 : JNI_ABORT);
fLockedPtr = NULL;
fLockedArray = NULL;
} else {
SkDebugf("============= unlock called with null ptr %x\n", fLockedArray);
}
}

View File

@ -1,27 +0,0 @@
#ifndef NIOBuffer_DEFINED
#define NIOBuffer_DEFINED
#include <jni.h>
#include "SkBitmap.h"
class NIOBuffer {
public:
NIOBuffer(JNIEnv* env, jobject buffer);
// this checks to ensure that free() was called
~NIOBuffer();
void* lock(JNIEnv* env, int* remaining);
void unlock(JNIEnv* env, bool dataChanged);
// must be called before destructor
void free(JNIEnv* env);
// call once on boot, to setup JNI globals
static void RegisterJNI(JNIEnv*);
private:
jobject fBuffer;
void* fLockedPtr;
jbyteArray fLockedArray;
};
#endif