blob: c918f772f3e0b4e57dbb920fe7cc46dfc193c0c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include <jni.h>
#include <assert.h>
#include "com_jogamp_common_util_JarUtil.h"
#if defined(__APPLE__)
#include <sys/xattr.h>
static const char kQuarantineAttrName[] = "com.apple.quarantine";
#endif
/*
* Class: com_jogamp_common_util_JarUtil
* Method: fixNativeLibAttribs
* Signature: (Ljava/lang/String;)Z
*/
JNIEXPORT jboolean JNICALL Java_com_jogamp_common_util_JarUtil_fixNativeLibAttribs
(JNIEnv *env, jclass _unused, jstring fname) {
const char* _UTF8fname = NULL;
int status = 0;
if (fname != NULL) {
if (fname != NULL) {
_UTF8fname = (*env)->GetStringUTFChars(env, fname, (jboolean*)NULL);
if (_UTF8fname == NULL) {
(*env)->ThrowNew(env, (*env)->FindClass(env, "java/lang/OutOfMemoryError"),
"Failed to get UTF-8 chars for argument \"fname\" in native dispatcher for \"removexattr\"");
return 0;
}
}
}
#if defined(__APPLE__)
status = removexattr(_UTF8fname, kQuarantineAttrName, 0);
#endif
if (fname != NULL) {
(*env)->ReleaseStringUTFChars(env, fname, _UTF8fname);
}
return 0 == status ? JNI_TRUE : JNI_FALSE;
}
|