Merge "Add some safety to Picture's JNI"

This commit is contained in:
TreeHugger Robot
2019-10-31 22:25:12 +00:00
committed by Android (Google) Code Review

View File

@@ -20,9 +20,12 @@
#include "SkCanvas.h"
#include "SkStream.h"
#include "core_jni_helpers.h"
#include "nativehelper/jni_macros.h"
#include <jni.h>
#include <array>
namespace android {
static jlong android_graphics_Picture_newPicture(JNIEnv* env, jobject, jlong srcHandle) {
@@ -91,20 +94,20 @@ static void android_graphics_Picture_endRecording(JNIEnv* env, jobject, jlong pi
pict->endRecording();
}
static const JNINativeMethod gMethods[] = {
{"nativeGetWidth", "(J)I", (void*) android_graphics_Picture_getWidth},
{"nativeGetHeight", "(J)I", (void*) android_graphics_Picture_getHeight},
{"nativeConstructor", "(J)J", (void*) android_graphics_Picture_newPicture},
{"nativeCreateFromStream", "(Ljava/io/InputStream;[B)J", (void*)android_graphics_Picture_deserialize},
{"nativeBeginRecording", "(JII)J", (void*) android_graphics_Picture_beginRecording},
{"nativeEndRecording", "(J)V", (void*) android_graphics_Picture_endRecording},
{"nativeDraw", "(JJ)V", (void*) android_graphics_Picture_draw},
{"nativeWriteToStream", "(JLjava/io/OutputStream;[B)Z", (void*)android_graphics_Picture_serialize},
{"nativeDestructor","(J)V", (void*) android_graphics_Picture_killPicture}
static const std::array gMethods = {
MAKE_JNI_NATIVE_METHOD("nativeGetWidth", "(J)I", android_graphics_Picture_getWidth),
MAKE_JNI_NATIVE_METHOD("nativeGetHeight", "(J)I", android_graphics_Picture_getHeight),
MAKE_JNI_NATIVE_METHOD("nativeConstructor", "(J)J", android_graphics_Picture_newPicture),
MAKE_JNI_NATIVE_METHOD("nativeCreateFromStream", "(Ljava/io/InputStream;[B)J", android_graphics_Picture_deserialize),
MAKE_JNI_NATIVE_METHOD("nativeBeginRecording", "(JII)J", android_graphics_Picture_beginRecording),
MAKE_JNI_NATIVE_METHOD("nativeEndRecording", "(J)V", android_graphics_Picture_endRecording),
MAKE_JNI_NATIVE_METHOD("nativeDraw", "(JJ)V", android_graphics_Picture_draw),
MAKE_JNI_NATIVE_METHOD("nativeWriteToStream", "(JLjava/io/OutputStream;[B)Z", android_graphics_Picture_serialize),
MAKE_JNI_NATIVE_METHOD("nativeDestructor","(J)V", android_graphics_Picture_killPicture)
};
int register_android_graphics_Picture(JNIEnv* env) {
return RegisterMethodsOrDie(env, "android/graphics/Picture", gMethods, NELEM(gMethods));
return RegisterMethodsOrDie(env, "android/graphics/Picture", gMethods.data(), gMethods.size());
}
}; // namespace android