diff options
author | Tor Lillqvist <tlillqvist@suse.com> | 2012-06-11 18:02:56 +0300 |
---|---|---|
committer | Tor Lillqvist <tlillqvist@suse.com> | 2012-06-12 13:50:45 +0300 |
commit | 4e4dcdae48dcd0437ff3f87a1ffc4fada53f2e3f (patch) | |
tree | 66f51bca26065cdad55c040024815a09bd8ffb7c /touch | |
parent | 3a793f9558c61000dc00534df0820e06135c8c24 (diff) |
Add Android-specific sal/ByteBufferWrapper.hxx header
Used for impedance matching between Java's direct ByteBuffer and the
boost::shared_array used by basebmp. Not sure yet how well this will
actually work. I'm afraid leaks might be possible in exception
throwing cases.
Change-Id: I74fc57aaf46b2dd9f227043bd9045d4815a5ed40
Diffstat (limited to 'touch')
-rw-r--r-- | touch/Library_libotouch.mk | 8 | ||||
-rw-r--r-- | touch/source/android/android.cxx | 36 |
2 files changed, 44 insertions, 0 deletions
diff --git a/touch/Library_libotouch.mk b/touch/Library_libotouch.mk index be355e3868ad..418c31a989de 100644 --- a/touch/Library_libotouch.mk +++ b/touch/Library_libotouch.mk @@ -28,6 +28,14 @@ $(eval $(call gb_Library_add_exception_objects,libotouch,\ touch/source/generic/libotouch \ )) +ifeq ($(OS),ANDROID) + +$(eval $(call gb_Library_add_exception_objects,libotouch,\ + touch/source/android/android \ +)) + +endif + ifeq ($(OS),IOS) $(eval $(call gb_Library_add_objcxx_objects,libotouch,\ diff --git a/touch/source/android/android.cxx b/touch/source/android/android.cxx new file mode 100644 index 000000000000..06768c86c646 --- /dev/null +++ b/touch/source/android/android.cxx @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Copyright 2012 LibreOffice contributors. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <jni.h> + +#include <sal/ByteBufferWrapper.hxx> + +using org::libreoffice::touch::ByteBufferWrapper; + +extern "C" +__attribute__ ((visibility("default"))) +jlong +Java_org_libreoffice_android_Bootstrap_new_1byte_1buffer_1wrapper(JNIEnv *env, + jobject /* clazz */, + jobject bytebuffer) +{ + return (jlong) (intptr_t) new ByteBufferWrapper(env, bytebuffer); +} + +extern "C" +__attribute__ ((visibility("default"))) +void +Java_org_libreoffice_android_Bootstrap_delete_1byte_1buffer_1wrapper(JNIEnv * /* env */, + jobject /* clazz */, + jlong bbw) +{ + delete (ByteBufferWrapper*) (intptr_t) bbw; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |