From 4e4dcdae48dcd0437ff3f87a1ffc4fada53f2e3f Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Mon, 11 Jun 2012 18:02:56 +0300 Subject: 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 --- touch/Library_libotouch.mk | 8 ++++++++ touch/source/android/android.cxx | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 touch/source/android/android.cxx (limited to 'touch') 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 + +#include + +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: */ -- cgit