summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshok Bhat <ashok.bhat@arm.com>2013-11-25 11:26:15 +0000
committerDavid Butcher <david.butcher@arm.com>2013-12-20 11:30:14 +0000
commitae710cd10213c0a89e9daea945f3efa9f90b188e (patch)
treeaaa4beda5d8082c7e231ce9ef9650fdb2fdf4a01
parentb51ed34abbb70994da221c545678d9dc5fe88141 (diff)
downloadvoip-ae710cd10213c0a89e9daea945f3efa9f90b188e.tar.gz
AArch64: Use long for pointers
long is used instead of integer to store pointers, as native pointers can be 64-bit. Change-Id: Ieff46385640096082eff60f4e30c282cf90081c2 Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
-rw-r--r--src/java/android/net/rtp/AudioGroup.java16
-rw-r--r--src/jni/rtp/AudioGroup.cpp26
2 files changed, 21 insertions, 21 deletions
diff --git a/src/java/android/net/rtp/AudioGroup.java b/src/java/android/net/rtp/AudioGroup.java
index 8faeb88..30a664c 100644
--- a/src/java/android/net/rtp/AudioGroup.java
+++ b/src/java/android/net/rtp/AudioGroup.java
@@ -91,10 +91,10 @@ public class AudioGroup {
private static final int MODE_LAST = 3;
- private final Map<AudioStream, Integer> mStreams;
+ private final Map<AudioStream, Long> mStreams;
private int mMode = MODE_ON_HOLD;
- private int mNative;
+ private long mNative;
static {
System.loadLibrary("rtp_jni");
}
@@ -103,7 +103,7 @@ public class AudioGroup {
* Creates an empty AudioGroup.
*/
public AudioGroup() {
- mStreams = new HashMap<AudioStream, Integer>();
+ mStreams = new HashMap<AudioStream, Long>();
}
/**
@@ -149,7 +149,7 @@ public class AudioGroup {
AudioCodec codec = stream.getCodec();
String codecSpec = String.format(Locale.US, "%d %s %s", codec.type,
codec.rtpmap, codec.fmtp);
- int id = nativeAdd(stream.getMode(), stream.getSocket(),
+ long id = nativeAdd(stream.getMode(), stream.getSocket(),
stream.getRemoteAddress().getHostAddress(),
stream.getRemotePort(), codecSpec, stream.getDtmfType());
mStreams.put(stream, id);
@@ -159,18 +159,18 @@ public class AudioGroup {
}
}
- private native int nativeAdd(int mode, int socket, String remoteAddress,
+ private native long nativeAdd(int mode, int socket, String remoteAddress,
int remotePort, String codecSpec, int dtmfType);
// Package-private method used by AudioStream.join().
synchronized void remove(AudioStream stream) {
- Integer id = mStreams.remove(stream);
+ Long id = mStreams.remove(stream);
if (id != null) {
nativeRemove(id);
}
}
- private native void nativeRemove(int id);
+ private native void nativeRemove(long id);
/**
* Sends a DTMF digit to every {@link AudioStream} in this group. Currently
@@ -200,7 +200,7 @@ public class AudioGroup {
@Override
protected void finalize() throws Throwable {
- nativeRemove(0);
+ nativeRemove(0L);
super.finalize();
}
}
diff --git a/src/jni/rtp/AudioGroup.cpp b/src/jni/rtp/AudioGroup.cpp
index 3f9e55e..691fcf4 100644
--- a/src/jni/rtp/AudioGroup.cpp
+++ b/src/jni/rtp/AudioGroup.cpp
@@ -936,7 +936,7 @@ exit:
static jfieldID gNative;
static jfieldID gMode;
-int add(JNIEnv *env, jobject thiz, jint mode,
+jlong add(JNIEnv *env, jobject thiz, jint mode,
jint socket, jstring jRemoteAddress, jint remotePort,
jstring jCodecSpec, jint dtmfType)
{
@@ -992,7 +992,7 @@ int add(JNIEnv *env, jobject thiz, jint mode,
codec = NULL;
// Create audio group.
- group = (AudioGroup *)env->GetIntField(thiz, gNative);
+ group = (AudioGroup *)env->GetLongField(thiz, gNative);
if (!group) {
int mode = env->GetIntField(thiz, gMode);
group = new AudioGroup;
@@ -1011,32 +1011,32 @@ int add(JNIEnv *env, jobject thiz, jint mode,
}
// Succeed.
- env->SetIntField(thiz, gNative, (int)group);
- return (int)stream;
+ env->SetLongField(thiz, gNative, (jlong)group);
+ return (jlong)stream;
error:
delete group;
delete stream;
delete codec;
close(socket);
- env->SetIntField(thiz, gNative, 0);
+ env->SetLongField(thiz, gNative, 0);
return 0;
}
-void remove(JNIEnv *env, jobject thiz, jint stream)
+void remove(JNIEnv *env, jobject thiz, jlong stream)
{
- AudioGroup *group = (AudioGroup *)env->GetIntField(thiz, gNative);
+ AudioGroup *group = (AudioGroup *)env->GetLongField(thiz, gNative);
if (group) {
if (!stream || !group->remove((AudioStream *)stream)) {
delete group;
- env->SetIntField(thiz, gNative, 0);
+ env->SetLongField(thiz, gNative, 0);
}
}
}
void setMode(JNIEnv *env, jobject thiz, jint mode)
{
- AudioGroup *group = (AudioGroup *)env->GetIntField(thiz, gNative);
+ AudioGroup *group = (AudioGroup *)env->GetLongField(thiz, gNative);
if (group && !group->setMode(mode)) {
jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
}
@@ -1044,15 +1044,15 @@ void setMode(JNIEnv *env, jobject thiz, jint mode)
void sendDtmf(JNIEnv *env, jobject thiz, jint event)
{
- AudioGroup *group = (AudioGroup *)env->GetIntField(thiz, gNative);
+ AudioGroup *group = (AudioGroup *)env->GetLongField(thiz, gNative);
if (group && !group->sendDtmf(event)) {
jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
}
}
JNINativeMethod gMethods[] = {
- {"nativeAdd", "(IILjava/lang/String;ILjava/lang/String;I)I", (void *)add},
- {"nativeRemove", "(I)V", (void *)remove},
+ {"nativeAdd", "(IILjava/lang/String;ILjava/lang/String;I)J", (void *)add},
+ {"nativeRemove", "(J)V", (void *)remove},
{"nativeSetMode", "(I)V", (void *)setMode},
{"nativeSendDtmf", "(I)V", (void *)sendDtmf},
};
@@ -1069,7 +1069,7 @@ int registerAudioGroup(JNIEnv *env)
jclass clazz;
if ((clazz = env->FindClass("android/net/rtp/AudioGroup")) == NULL ||
- (gNative = env->GetFieldID(clazz, "mNative", "I")) == NULL ||
+ (gNative = env->GetFieldID(clazz, "mNative", "J")) == NULL ||
(gMode = env->GetFieldID(clazz, "mMode", "I")) == NULL ||
env->RegisterNatives(clazz, gMethods, NELEM(gMethods)) < 0) {
ALOGE("JNI registration failed");