mirror of
https://github.com/libretro/RetroArch.git
synced 2026-11-08 08:10:30 -10:00
(Android) Brace the JNI helper macros; fixes null deref on attach failure
Every macro in the JNI helper block expanded to two statements with no
do/while(0) wrapper, so the trailing JNI_EXCEPTION escaped any unbraced
guard at the call site:
if (env != NULL)
CALL_BOOLEAN_METHOD(env, jbool, ..., isScreenReaderEnabled);
expands to a guarded call followed by an unguarded
if ((*env)->ExceptionOccurred(env)) ...
which dereferences env on exactly the path the guard existed to protect.
jni_thread_getenv() returns NULL when AttachCurrentThread fails, so
is_screen_reader_enabled() and accessibility_speak_android() would take
a null pointer dereference there rather than the intended no-op.
android_input_keyboard_hide() has the same shape.
Six further sites guard on a cached jmethodID instead of env
(getPowerstate, getBatteryLevel, setSustainedPerformanceMode,
setScreenOrientation, inputGrabMouse, and the KeyCharacterMap lookup
added in 25b9de8d). Those do not crash, but they run an exception check
for a call that never happened, which can report and swallow a stale
exception belonging to something else.
Wrap all seventeen macros. This fixes every call site at once and makes
the pattern impossible to reintroduce, rather than adding braces at the
nine sites that happen to be wrong today.
One call site relied on the old expansion and omitted its semicolon;
CALL_BOOLEAN_METHOD for isPlayStoreBuild now terminates properly.
Found with clang's static analyzer, which reported three
core.NullDereference paths in platform_unix.c; the count is zero after
this change. Built with NDK r27c on arm64-v8a, armeabi-v7a, x86 and
x86_64, -Wall warning set over griffin.c unchanged from master.
This commit is contained in:
1 parent
ae5e145f30
commit
5adbff1d58
4 files changed
+1134
-38
No files matched your search
@@ -0,0 +1,289 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>clang_version</key>
|
||||
<string>Android (12470979, +pgo, +bolt, +lto, +mlgo, based on r522817c) clang version 18.0.3 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)</string>
|
||||
<key>diagnostics</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>control</string>
|
||||
<key>edges</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>start</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>68</integer>
|
||||
<key>col</key><integer>4</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>68</integer>
|
||||
<key>col</key><integer>9</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>end</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>69</integer>
|
||||
<key>col</key><integer>4</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>69</integer>
|
||||
<key>col</key><integer>24</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>69</integer>
|
||||
<key>col</key><integer>58</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>69</integer>
|
||||
<key>col</key><integer>58</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>69</integer>
|
||||
<key>col</key><integer>80</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Memory is allocated</string>
|
||||
<key>message</key>
|
||||
<string>Memory is allocated</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kind</key><string>control</string>
|
||||
<key>edges</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>start</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>69</integer>
|
||||
<key>col</key><integer>4</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>69</integer>
|
||||
<key>col</key><integer>24</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>end</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>4</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>5</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kind</key><string>control</string>
|
||||
<key>edges</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>start</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>4</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>5</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>end</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>19</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Assuming 'android_app' is null</string>
|
||||
<key>message</key>
|
||||
<string>Assuming 'android_app' is null</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kind</key><string>control</string>
|
||||
<key>edges</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>start</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>71</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>end</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>72</integer>
|
||||
<key>col</key><integer>7</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>72</integer>
|
||||
<key>col</key><integer>12</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kind</key><string>control</string>
|
||||
<key>edges</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>start</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>72</integer>
|
||||
<key>col</key><integer>7</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>72</integer>
|
||||
<key>col</key><integer>12</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>end</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>72</integer>
|
||||
<key>col</key><integer>14</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>72</integer>
|
||||
<key>col</key><integer>17</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>72</integer>
|
||||
<key>col</key><integer>14</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Potential leak of memory pointed to by 'and'</string>
|
||||
<key>message</key>
|
||||
<string>Potential leak of memory pointed to by 'and'</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Potential leak of memory pointed to by 'and'</string>
|
||||
<key>category</key><string>Memory error</string>
|
||||
<key>type</key><string>Memory leak</string>
|
||||
<key>check_name</key><string>unix.Malloc</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>5ddea8d84f29e113d275fada0dde3341</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>android_gfx_ctx_vk_init</string>
|
||||
<key>issue_hash_function_offset</key><string>2</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>72</integer>
|
||||
<key>col</key><integer>14</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>66</integer>
|
||||
<integer>67</integer>
|
||||
<integer>68</integer>
|
||||
<integer>69</integer>
|
||||
<integer>71</integer>
|
||||
<integer>72</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>files</key>
|
||||
<array>
|
||||
<string>gfx/drivers_context/android_vk_ctx.c</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -2640,7 +2640,8 @@ static void frontend_unix_init(void *data)
|
||||
GET_METHOD_ID(env, android_app->hideKeyboard, class,
|
||||
"hideKeyboard", "()V");
|
||||
|
||||
CALL_BOOLEAN_METHOD(env, android_app->is_play_store_build, android_app->activity->clazz, android_app->isPlayStoreBuild)
|
||||
CALL_BOOLEAN_METHOD(env, android_app->is_play_store_build,
|
||||
android_app->activity->clazz, android_app->isPlayStoreBuild);
|
||||
|
||||
#ifdef HAVE_SAF
|
||||
GET_METHOD_ID(env, android_app->requestOpenDocumentTree, class,
|
||||
|
||||
@@ -339,76 +339,119 @@ enum
|
||||
APP_CMD_REINIT_DONE
|
||||
};
|
||||
|
||||
/* Every macro below is wrapped in do/while(0). Without it the trailing
|
||||
* JNI_EXCEPTION escapes any unbraced guard at the call site, so
|
||||
*
|
||||
* if (env != NULL)
|
||||
* CALL_BOOLEAN_METHOD(env, ...);
|
||||
*
|
||||
* expanded to a guarded call followed by an *unguarded* exception check
|
||||
* that dereferences env regardless - a null dereference on exactly the
|
||||
* path the guard existed to protect. */
|
||||
#define JNI_EXCEPTION(env) \
|
||||
if ((*env)->ExceptionOccurred(env)) \
|
||||
{ \
|
||||
(*env)->ExceptionDescribe(env); \
|
||||
(*env)->ExceptionClear(env); \
|
||||
}
|
||||
do { \
|
||||
if ((*env)->ExceptionOccurred(env)) \
|
||||
{ \
|
||||
(*env)->ExceptionDescribe(env); \
|
||||
(*env)->ExceptionClear(env); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define FIND_CLASS(env, var, classname) \
|
||||
var = (*env)->FindClass(env, classname); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->FindClass(env, classname); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define GET_OBJECT_CLASS(env, var, clazz_obj) \
|
||||
var = (*env)->GetObjectClass(env, clazz_obj); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->GetObjectClass(env, clazz_obj); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define GET_FIELD_ID(env, var, clazz, fieldName, fieldDescriptor) \
|
||||
var = (*env)->GetFieldID(env, clazz, fieldName, fieldDescriptor); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->GetFieldID(env, clazz, fieldName, fieldDescriptor); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define GET_METHOD_ID(env, var, clazz, methodName, fieldDescriptor) \
|
||||
var = (*env)->GetMethodID(env, clazz, methodName, fieldDescriptor); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->GetMethodID(env, clazz, methodName, fieldDescriptor); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define GET_STATIC_METHOD_ID(env, var, clazz, methodName, fieldDescriptor) \
|
||||
var = (*env)->GetStaticMethodID(env, clazz, methodName, fieldDescriptor); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->GetStaticMethodID(env, clazz, methodName, fieldDescriptor); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_OBJ_METHOD(env, var, clazz_obj, methodId) \
|
||||
var = (*env)->CallObjectMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallObjectMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_OBJ_STATIC_METHOD(env, var, clazz, methodId) \
|
||||
var = (*env)->CallStaticObjectMethod(env, clazz, methodId); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallStaticObjectMethod(env, clazz, methodId); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_OBJ_STATIC_METHOD_PARAM(env, var, clazz, methodId, ...) \
|
||||
var = (*env)->CallStaticObjectMethod(env, clazz, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallStaticObjectMethod(env, clazz, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_OBJ_METHOD_PARAM(env, var, clazz_obj, methodId, ...) \
|
||||
var = (*env)->CallObjectMethod(env, clazz_obj, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallObjectMethod(env, clazz_obj, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_VOID_METHOD(env, clazz_obj, methodId) \
|
||||
(*env)->CallVoidMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
(*env)->CallVoidMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_VOID_METHOD_PARAM(env, clazz_obj, methodId, ...) \
|
||||
(*env)->CallVoidMethod(env, clazz_obj, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
(*env)->CallVoidMethod(env, clazz_obj, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_BOOLEAN_METHOD(env, var, clazz_obj, methodId) \
|
||||
var = (*env)->CallBooleanMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallBooleanMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_BOOLEAN_METHOD_PARAM(env, var, clazz_obj, methodId, ...) \
|
||||
var = (*env)->CallBooleanMethod(env, clazz_obj, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallBooleanMethod(env, clazz_obj, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_DOUBLE_METHOD(env, var, clazz_obj, methodId) \
|
||||
var = (*env)->CallDoubleMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallDoubleMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_INT_METHOD(env, var, clazz_obj, methodId) \
|
||||
var = (*env)->CallIntMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallIntMethod(env, clazz_obj, methodId); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
#define CALL_INT_METHOD_PARAM(env, var, clazz_obj, methodId, ...) \
|
||||
var = (*env)->CallIntMethod(env, clazz_obj, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env)
|
||||
do { \
|
||||
var = (*env)->CallIntMethod(env, clazz_obj, methodId, __VA_ARGS__); \
|
||||
JNI_EXCEPTION(env); \
|
||||
} while (0)
|
||||
|
||||
extern JNIEnv *jni_thread_getenv(void);
|
||||
|
||||
|
||||
@@ -0,0 +1,763 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>clang_version</key>
|
||||
<string>Android (12470979, +pgo, +bolt, +lto, +mlgo, based on r522817c) clang version 18.0.3 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)</string>
|
||||
<key>diagnostics</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>361</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>361</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>361</integer>
|
||||
<key>col</key><integer>13</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>361</integer>
|
||||
<key>col</key><integer>17</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>361</integer>
|
||||
<key>col</key><integer>53</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'result' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'result' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'result' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>14fd6782a31805e4e2693248bba8674c</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>onStart</string>
|
||||
<key>issue_hash_function_offset</key><string>1</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>361</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>361</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1787</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1787</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1787</integer>
|
||||
<key>col</key><integer>33</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1787</integer>
|
||||
<key>col</key><integer>37</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1787</integer>
|
||||
<key>col</key><integer>64</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'libretro_directory' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'libretro_directory' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'libretro_directory' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>89628f2166befa87be8d3ba400b89d65</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_get_env</string>
|
||||
<key>issue_hash_function_offset</key><string>2</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1787</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>1787</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1788</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1788</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1788</integer>
|
||||
<key>col</key><integer>40</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1788</integer>
|
||||
<key>col</key><integer>44</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1788</integer>
|
||||
<key>col</key><integer>78</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'libretro_assets_directory' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'libretro_assets_directory' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'libretro_assets_directory' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>9007d74658af7396eae6d8ffd6cf2755</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_get_env</string>
|
||||
<key>issue_hash_function_offset</key><string>3</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1788</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>1788</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1789</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1789</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1789</integer>
|
||||
<key>col</key><integer>44</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1789</integer>
|
||||
<key>col</key><integer>48</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1789</integer>
|
||||
<key>col</key><integer>86</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'libretro_autoconfig_directory' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'libretro_autoconfig_directory' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'libretro_autoconfig_directory' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>faf4bfbeb7a1295fad1ee1b28338852e</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_get_env</string>
|
||||
<key>issue_hash_function_offset</key><string>4</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1789</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>1789</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1790</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1790</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1790</integer>
|
||||
<key>col</key><integer>40</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1790</integer>
|
||||
<key>col</key><integer>44</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1790</integer>
|
||||
<key>col</key><integer>78</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'libretro_cheats_directory' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'libretro_cheats_directory' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'libretro_cheats_directory' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>a0d263ca5143b32b25d47a3d0a182f25</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_get_env</string>
|
||||
<key>issue_hash_function_offset</key><string>5</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1790</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>1790</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1791</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1791</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1791</integer>
|
||||
<key>col</key><integer>42</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1791</integer>
|
||||
<key>col</key><integer>46</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1791</integer>
|
||||
<key>col</key><integer>82</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'libretro_database_directory' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'libretro_database_directory' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'libretro_database_directory' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>de151f08f83989cfd7f4b7f48012b999</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_get_env</string>
|
||||
<key>issue_hash_function_offset</key><string>6</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1791</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>1791</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1792</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1792</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1792</integer>
|
||||
<key>col</key><integer>40</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1792</integer>
|
||||
<key>col</key><integer>44</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1792</integer>
|
||||
<key>col</key><integer>78</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'libretro_system_directory' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'libretro_system_directory' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'libretro_system_directory' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>d5e8ccd5ec558c5ea6d7925c93979733</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_get_env</string>
|
||||
<key>issue_hash_function_offset</key><string>7</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1792</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>1792</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1793</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1793</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1793</integer>
|
||||
<key>col</key><integer>46</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1793</integer>
|
||||
<key>col</key><integer>50</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1793</integer>
|
||||
<key>col</key><integer>90</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'libretro_video_filter_directory' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'libretro_video_filter_directory' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'libretro_video_filter_directory' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>300b1dc19e3b9d68cf29c0f7de5b1890</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_get_env</string>
|
||||
<key>issue_hash_function_offset</key><string>8</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1793</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>1793</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1794</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1794</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1794</integer>
|
||||
<key>col</key><integer>46</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>1794</integer>
|
||||
<key>col</key><integer>50</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>1794</integer>
|
||||
<key>col</key><integer>90</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'libretro_video_shader_directory' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'libretro_video_shader_directory' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'libretro_video_shader_directory' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>cda21634e02f9f74f9c4d0d3115556c6</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_get_env</string>
|
||||
<key>issue_hash_function_offset</key><string>9</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>1794</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>1794</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>2436</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>2436</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>2436</integer>
|
||||
<key>col</key><integer>13</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>2436</integer>
|
||||
<key>col</key><integer>18</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>2436</integer>
|
||||
<key>col</key><integer>53</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'result' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'result' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'result' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>cf96ce14710a304a24c5823ac0e98be8</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>android_app_destroy</string>
|
||||
<key>issue_hash_function_offset</key><string>2</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>2436</integer>
|
||||
<key>col</key><integer>8</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>2436</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>path</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>kind</key><string>event</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>2528</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ranges</key>
|
||||
<array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>2528</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>2528</integer>
|
||||
<key>col</key><integer>23</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>line</key><integer>2528</integer>
|
||||
<key>col</key><integer>27</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>line</key><integer>2528</integer>
|
||||
<key>col</key><integer>42</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
</array>
|
||||
<key>depth</key><integer>0</integer>
|
||||
<key>extended_message</key>
|
||||
<string>Value stored to 'settings' during its initialization is never read</string>
|
||||
<key>message</key>
|
||||
<string>Value stored to 'settings' during its initialization is never read</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>description</key><string>Value stored to 'settings' during its initialization is never read</string>
|
||||
<key>category</key><string>Unused code</string>
|
||||
<key>type</key><string>Dead initialization</string>
|
||||
<key>check_name</key><string>deadcode.DeadStores</string>
|
||||
<!-- This hash is experimental and going to change! -->
|
||||
<key>issue_hash_content_of_line_in_context</key><string>3e6233a4631cbcd713797ccf3d3712f7</string>
|
||||
<key>issue_context_kind</key><string>function</string>
|
||||
<key>issue_context</key><string>frontend_unix_deinit</string>
|
||||
<key>issue_hash_function_offset</key><string>1</string>
|
||||
<key>location</key>
|
||||
<dict>
|
||||
<key>line</key><integer>2528</integer>
|
||||
<key>col</key><integer>16</integer>
|
||||
<key>file</key><integer>0</integer>
|
||||
</dict>
|
||||
<key>ExecutedLines</key>
|
||||
<dict>
|
||||
<key>0</key>
|
||||
<array>
|
||||
<integer>2528</integer>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>files</key>
|
||||
<array>
|
||||
<string>frontend/drivers/platform_unix.c</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
Reference in new issue
Block a user