代码拉取完成,页面将自动刷新
/*
Certain compile time parameters result in different offsets
for members in structures. This file defines the offsets for
members which cannot be accessed otherwise and some macros
to simplify accessing them.
*/
#define MEMBER_OFFSET_ARRAY(type,member) offsets_array_ ## type ## _ ## member
#define MEMBER_OFFSET_VAR(type,member) offset_ ## type ## _ ## member
#define MEMBER_TYPE(type,member) offset_type_ ## type ## _ ## member
#define MEMBER_PTR(obj,type,member) \
( (MEMBER_TYPE(type,member)*) ( (char*)(obj) + MEMBER_OFFSET_VAR(type,member) ) )
#define MEMBER_VAL(obj,type,member) *MEMBER_PTR(obj,type,member)
#define MEMBER_OFFSET_DEFINE(type,member,offsets...) \
static int MEMBER_OFFSET_ARRAY(type,member)[] = { offsets }; \
static int MEMBER_OFFSET_VAR(type,member);
#define MEMBER_OFFSET_COPY(type,member) MEMBER_OFFSET_VAR(type,member) = MEMBER_OFFSET_ARRAY(type,member)[offsetMode]
// here are the definitions of the modes and offsets
enum xposedOffsetModes {
MEMBER_OFFSET_MODE_WITH_JIT,
MEMBER_OFFSET_MODE_NO_JIT,
};
static xposedOffsetModes offsetMode;
const char* xposedOffsetModesDesc[] = {
"WITH_JIT",
"NO_JIT",
};
MEMBER_OFFSET_DEFINE(DvmJitGlobals, codeCacheFull, 120, 0)
#define offset_type_DvmJitGlobals_codeCacheFull bool
// helper to determine the required values (compile with XPOSED_SHOW_OFFSET=true)
#ifdef XPOSED_SHOW_OFFSETS
template<int s> struct RESULT;
#ifdef WITH_JIT
#pragma message "WITH_JIT is defined"
#else
#pragma message "WITH_JIT is not defined"
#endif
RESULT<sizeof(Method)> SIZEOF_Method;
RESULT<sizeof(Thread)> SIZEOF_Thread;
RESULT<offsetof(DvmJitGlobals, codeCacheFull)> OFFSETOF_DvmJitGlobals_codeCacheFull;
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。