Merge "use 64-bits usage bits almost everywhere"

This commit is contained in:
Aurimas Liutikas
2017-05-30 16:47:57 +00:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 7 deletions

View File

@@ -18,6 +18,7 @@
#include "jni.h"
#include "JNIHelp.h"
#include <inttypes.h>
#include "android_os_Parcel.h"
#include "GraphicBuffer.h"
@@ -27,6 +28,8 @@
#include <binder/Parcel.h>
#include <log/log.h>
#include <ui/GraphicBuffer.h>
#include <ui/PixelFormat.h>
@@ -90,9 +93,15 @@ static struct {
class GraphicBufferWrapper {
public:
explicit GraphicBufferWrapper(const sp<GraphicBuffer>& buffer): buffer(buffer) {
LOG_ALWAYS_FATAL_IF(buffer == nullptr, "creating a null GraphicBuffer");
}
const sp<GraphicBuffer>& get() const {
return buffer;
}
sp<GraphicBuffer> buffer;
private:
// make sure this is immutable
sp<GraphicBuffer> const buffer;
};
// ----------------------------------------------------------------------------
@@ -102,6 +111,8 @@ public:
static jlong android_graphics_GraphicBuffer_wrap(JNIEnv* env, jobject clazz,
jlong unwrapped) {
sp<GraphicBuffer> b(reinterpret_cast<GraphicBuffer*>(unwrapped));
LOG_ALWAYS_FATAL_IF(b == nullptr,
"*** android_graphics_GraphicBuffer_wrap() invalid state, b is null, unwrapped=%#" PRIx64, unwrapped);
GraphicBufferWrapper* wrapper = new GraphicBufferWrapper(b);
return reinterpret_cast<jlong>(wrapper);
}
@@ -159,7 +170,7 @@ static jboolean android_graphics_GraphicBuffer_lockCanvas(JNIEnv* env, jobject,
return JNI_FALSE;
}
sp<GraphicBuffer> buffer(wrapper->buffer);
sp<GraphicBuffer> buffer(wrapper->get());
Rect rect(Rect::EMPTY_RECT);
if (dirtyRect) {
@@ -217,7 +228,7 @@ static jboolean android_graphics_GraphicBuffer_unlockCanvasAndPost(JNIEnv* env,
nativeCanvas->setBitmap(SkBitmap());
if (wrapper) {
status_t status = wrapper->buffer->unlock();
status_t status = wrapper->get()->unlock();
return status == 0 ? JNI_TRUE : JNI_FALSE;
}
@@ -230,11 +241,12 @@ static jboolean android_graphics_GraphicBuffer_unlockCanvasAndPost(JNIEnv* env,
static void android_graphics_GraphicBuffer_write(JNIEnv* env, jobject clazz,
jlong wrapperHandle, jobject dest) {
GraphicBufferWrapper* wrapper =
reinterpret_cast<GraphicBufferWrapper*>(wrapperHandle);
Parcel* parcel = parcelForJavaObject(env, dest);
if (parcel) {
parcel->write(*wrapper->buffer);
parcel->write(*wrapper->get());
}
}
@@ -260,7 +272,7 @@ sp<GraphicBuffer> graphicBufferForJavaObject(JNIEnv* env, jobject obj) {
jlong nativeObject = env->GetLongField(obj, gGraphicBufferClassInfo.mNativeObject);
GraphicBufferWrapper* wrapper = (GraphicBufferWrapper*) nativeObject;
if (wrapper != NULL) {
sp<GraphicBuffer> buffer(wrapper->buffer);
sp<GraphicBuffer> buffer(wrapper->get());
return buffer;
}
}
@@ -271,7 +283,7 @@ jobject createJavaGraphicBuffer(JNIEnv* env, const sp<GraphicBuffer>& buffer) {
GraphicBufferWrapper* wrapper = new GraphicBufferWrapper(buffer);
jobject obj = env->NewObject(gGraphicBufferClassInfo.mClass,
gGraphicBufferClassInfo.mConstructorMethodID, buffer->getWidth(), buffer->getHeight(),
buffer->getPixelFormat(), buffer->getUsage(), reinterpret_cast<jlong>(wrapper));
buffer->getPixelFormat(), (jint)buffer->getUsage(), reinterpret_cast<jlong>(wrapper));
return obj;
}

View File

@@ -166,7 +166,7 @@ static jobject nativeScreenshotToBuffer(JNIEnv* env, jclass clazz,
buffer->getWidth(),
buffer->getHeight(),
buffer->getPixelFormat(),
buffer->getUsage(),
(jint)buffer->getUsage(),
(jlong)buffer.get());
}