aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools/android/apps/canvasproof/src/main/jni/JavaInputStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform_tools/android/apps/canvasproof/src/main/jni/JavaInputStream.cpp')
-rw-r--r--platform_tools/android/apps/canvasproof/src/main/jni/JavaInputStream.cpp61
1 files changed, 0 insertions, 61 deletions
diff --git a/platform_tools/android/apps/canvasproof/src/main/jni/JavaInputStream.cpp b/platform_tools/android/apps/canvasproof/src/main/jni/JavaInputStream.cpp
deleted file mode 100644
index 823b72f7ef..0000000000
--- a/platform_tools/android/apps/canvasproof/src/main/jni/JavaInputStream.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "JavaInputStream.h"
-
-JavaInputStream::JavaInputStream(
- JNIEnv* env, jbyteArray javaBuffer, jobject inputStream)
- : fEnv(env)
- , fStartIndex(0)
- , fEndIndex(0) {
- SkASSERT(inputStream);
- SkASSERT(javaBuffer);
- fInputStream = inputStream;
- fJavaBuffer = javaBuffer;
- fInputStreamClass = env->FindClass("java/io/InputStream");
- SkASSERT(fInputStreamClass);
- fReadMethodID = env->GetMethodID(fInputStreamClass, "read", "([B)I");
- SkASSERT(fReadMethodID);
-}
-
-bool JavaInputStream::isAtEnd() const { return fStartIndex == fEndIndex; }
-
-size_t JavaInputStream::read(void* voidBuffer, size_t size) {
- size_t totalRead = 0;
- char* buffer = static_cast<char*>(voidBuffer); // may be NULL;
- while (size) {
- // make sure the cache has at least one byte or is done.
- if (fStartIndex == fEndIndex) {
- jint count =
- fEnv->CallIntMethod(fInputStream, fReadMethodID, fJavaBuffer);
- if (fEnv->ExceptionCheck()) {
- fEnv->ExceptionDescribe();
- fEnv->ExceptionClear();
- SkDebugf("---- java.io.InputStream::read() threw an exception\n");
- return 0;
- }
- fStartIndex = 0;
- fEndIndex = count;
- if (this->isAtEnd()) {
- return totalRead; // No more to read.
- }
- }
- SkASSERT(fEndIndex > fStartIndex);
- size_t length = SkTMin(SkToSizeT(fEndIndex - fStartIndex), size);
- if (buffer && length) {
- jbyte* bufferElements
- = fEnv->GetByteArrayElements(fJavaBuffer, NULL);
- memcpy(buffer, &bufferElements[fStartIndex], length);
- buffer += length;
- fEnv->ReleaseByteArrayElements(fJavaBuffer, bufferElements, 0);
- }
- totalRead += length;
- size -= length;
- fStartIndex += length;
- }
- return totalRead;
-}