Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Michael Telatynski
Olm
Commits
7e69d96a
Commit
7e69d96a
authored
Oct 17, 2016
by
pedroGitt
Browse files
Add extra tests to check if the calling JAVA instance is the expected one
parent
ebfcd03c
Changes
2
Hide whitespace changes
Inline
Side-by-side
java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_jni.h
View file @
7e69d96a
...
...
@@ -21,7 +21,6 @@
#include <cstdio>
#include <string>
#include <sstream>
#include <map>
#include <jni.h>
#include <android/log.h>
...
...
@@ -53,6 +52,14 @@ static const int ERROR_CODE_KO = -1;
// constants
static
const
int
ACCOUNT_CREATION_RANDOM_MODULO
=
256
;
// strings
static
const
char
*
CLASS_OLM_OUTBOUND_GROUP_SESSION
=
"org/matrix/olm/OlmOutboundGroupSession"
;
static
const
char
*
CLASS_OLM_INBOUND_GROUP_SESSION
=
"org/matrix/olm/OlmInboundGroupSession"
;
static
const
char
*
CLASS_OLM_SESSION
=
"org/matrix/olm/OlmSession"
;
static
const
char
*
CLASS_OLM_ACCOUNT
=
"org/matrix/olm/OlmAccount"
;
static
const
char
*
CLASS_OLM_UTILITY
=
"org/matrix/olm/OlmUtility"
;
#ifdef __cplusplus
extern
"C"
{
#endif
...
...
java/android/OlmLibSdk/olm-sdk/src/main/jni/olm_jni_helper.cpp
View file @
7e69d96a
...
...
@@ -70,10 +70,17 @@ jlong getAccountInstanceId(JNIEnv* aJniEnv, jobject aJavaObject)
jlong
instanceId
=-
1
;
jfieldID
instanceIdField
;
jclass
loaderClass
;
jclass
requiredClass
=
0
;
if
(
NULL
!=
aJniEnv
)
{
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
requiredClass
=
aJniEnv
->
FindClass
(
CLASS_OLM_ACCOUNT
);
if
((
0
!=
requiredClass
)
&&
(
JNI_TRUE
!=
aJniEnv
->
IsInstanceOf
(
aJavaObject
,
requiredClass
)))
{
LOGD
(
"## getAccountInstanceId() failure - invalid instance of"
);
}
else
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
{
if
(
0
!=
(
instanceIdField
=
aJniEnv
->
GetFieldID
(
loaderClass
,
"mNativeOlmAccountId"
,
"J"
)))
{
...
...
@@ -110,10 +117,17 @@ jlong getSessionInstanceId(JNIEnv* aJniEnv, jobject aJavaObject)
jlong
instanceId
=-
1
;
jfieldID
instanceIdField
;
jclass
loaderClass
;
jclass
requiredClass
=
0
;
if
(
NULL
!=
aJniEnv
)
{
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
requiredClass
=
aJniEnv
->
FindClass
(
CLASS_OLM_SESSION
);
if
((
0
!=
requiredClass
)
&&
(
JNI_TRUE
!=
aJniEnv
->
IsInstanceOf
(
aJavaObject
,
requiredClass
)))
{
LOGD
(
"## getSessionInstanceId() failure - invalid instance of"
);
}
else
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
{
if
(
0
!=
(
instanceIdField
=
aJniEnv
->
GetFieldID
(
loaderClass
,
"mNativeOlmSessionId"
,
"J"
)))
{
...
...
@@ -151,10 +165,17 @@ jlong getInboundGroupSessionInstanceId(JNIEnv* aJniEnv, jobject aJavaObject)
jlong
instanceId
=-
1
;
jfieldID
instanceIdField
;
jclass
loaderClass
;
jclass
requiredClass
=
0
;
if
(
NULL
!=
aJniEnv
)
{
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
requiredClass
=
aJniEnv
->
FindClass
(
CLASS_OLM_INBOUND_GROUP_SESSION
);
if
((
0
!=
requiredClass
)
&&
(
JNI_TRUE
!=
aJniEnv
->
IsInstanceOf
(
aJavaObject
,
requiredClass
)))
{
LOGD
(
"## getInboundGroupSessionInstanceId() failure - invalid instance of"
);
}
else
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
{
if
(
0
!=
(
instanceIdField
=
aJniEnv
->
GetFieldID
(
loaderClass
,
"mNativeOlmInboundGroupSessionId"
,
"J"
)))
{
...
...
@@ -191,10 +212,57 @@ jlong getOutboundGroupSessionInstanceId(JNIEnv* aJniEnv, jobject aJavaObject)
jlong
instanceId
=-
1
;
jfieldID
instanceIdField
;
jclass
loaderClass
;
jclass
requiredClass
=
0
;
if
(
NULL
!=
aJniEnv
)
{
requiredClass
=
aJniEnv
->
FindClass
(
CLASS_OLM_OUTBOUND_GROUP_SESSION
);
if
((
0
!=
requiredClass
)
&&
(
JNI_TRUE
!=
aJniEnv
->
IsInstanceOf
(
aJavaObject
,
requiredClass
)))
{
LOGD
(
"## getOutboundGroupSessionInstanceId() failure - invalid instance of"
);
}
else
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
{
if
(
0
!=
(
instanceIdField
=
aJniEnv
->
GetFieldID
(
loaderClass
,
"mNativeOlmOutboundGroupSessionId"
,
"J"
)))
{
instanceId
=
aJniEnv
->
GetLongField
(
aJavaObject
,
instanceIdField
);
aJniEnv
->
DeleteLocalRef
(
loaderClass
);
}
else
{
LOGD
(
"## getOutboundGroupSessionInstanceId() ERROR! GetFieldID=null"
);
}
}
else
{
LOGD
(
"## getOutboundGroupSessionInstanceId() ERROR! GetObjectClass=null"
);
}
}
else
{
LOGD
(
"## getOutboundGroupSessionInstanceId() ERROR! aJniEnv=NULL"
);
}
return
instanceId
;
}
jlong
getUtilityInstanceId
(
JNIEnv
*
aJniEnv
,
jobject
aJavaObject
)
{
jlong
instanceId
=-
1
;
jfieldID
instanceIdField
;
jclass
loaderClass
;
jclass
requiredClass
=
0
;
if
(
NULL
!=
aJniEnv
)
{
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
requiredClass
=
aJniEnv
->
FindClass
(
CLASS_OLM_UTILITY
);
if
((
0
!=
requiredClass
)
&&
(
JNI_TRUE
!=
aJniEnv
->
IsInstanceOf
(
aJavaObject
,
requiredClass
)))
{
LOGD
(
"## getOutboundGroupSessionInstanceId() failure - invalid instance of"
);
}
else
if
(
0
!=
(
loaderClass
=
aJniEnv
->
GetObjectClass
(
aJavaObject
)))
{
if
(
0
!=
(
instanceIdField
=
aJniEnv
->
GetFieldID
(
loaderClass
,
"mNativeOlmOutboundGroupSessionId"
,
"J"
)))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment