⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 check_jni_methods.sh

📁 gcc的组建
💻 SH
字号:
#!/bin/sh# Fail if any command failsset -e# Don't override existing filesset -CTMPFILE=/tmp/check-jni-methods.$$.1TMPFILE2=/tmp/check-jni-methods.$$.2TMPFILE3=/tmp/check-jni-methods.$$.3# Find all methods defined in the header files generated# from the java source files.grep -h '^JNIEXPORT .* Java_' include/*.h | \        LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' | \	sort > $TMPFILE# Find all methods in the JNI C source files.find native/jni -name \*.c | \	xargs grep -h '^Java_' | \        LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\) *(.*$,\1,' > $TMPFILE2# Or in the the C++ files. (Note that cpp doesn't follow gnu conventions atm)# So we try to match both GNU style and some other style.find native/jni -name \*.cpp | \	xargs grep -h '^Java_' | \        LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\) *(.*$,\1,' >> $TMPFILE2find native/jni -name \*.cpp | \	xargs egrep -h '^(JNIEXPORT .* JNICALL )?Java_' | \	cut -f4 -d\  | \        LC_ALL=C sed -e 's,^\JNIEXPORT .* JNICALL \(Java_[a-z_A-Z0-9]*\) *(.*$,\1,' >> $TMPFILE2mv $TMPFILE2 $TMPFILE3sort $TMPFILE3 > $TMPFILE2rm $TMPFILE3# Write temporary ignore file.cat > $TMPFILE3 << EOF-Java_gnu_java_awt_peer_gtk_GtkMenuComponentPeer_dispose-Java_java_lang_VMSystem_arraycopy-Java_java_lang_VMSystem_identityHashCodeEOF# Compare again silently.# Use fgrep and direct the output to /dev/null for compatibility with older# grep instead of using the non portable -q.if diff -b -U 0 $TMPFILE $TMPFILE2 | grep '^[+-]Java' | \    fgrep -v -f $TMPFILE3 > /dev/null;then  PROBLEM=1  echo "Found a problem with the JNI methods declared and implemented."  echo "(-) missing in implementation, (+) missing in header files"  # Compare the found method lists.  diff -b -U 0 $TMPFILE $TMPFILE2  | grep '^[+-]Java' | fgrep -v -f $TMPFILE3fi# Cleanup.rm -f $TMPFILE $TMPFILE2 $TMPFILE3if test "$PROBLEM" = "1" ; then  exit 1fiexit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -