Lines Matching refs:cur_offset
1308 bool MethodVerifier::CheckArrayData(uint32_t cur_offset) { in CheckArrayData() argument
1310 const uint16_t* insns = code_item_->insns_ + cur_offset; in CheckArrayData()
1314 DCHECK_LT(cur_offset, insn_count); in CheckArrayData()
1317 if (static_cast<int32_t>(cur_offset) + array_data_offset < 0 || in CheckArrayData()
1318 cur_offset + array_data_offset + 2 >= insn_count) { in CheckArrayData()
1319 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid array data start: at " << cur_offset in CheckArrayData()
1328 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unaligned array data table: at " << cur_offset in CheckArrayData()
1334 if (!GetInstructionFlags(cur_offset + array_data_offset).IsOpcode()) { in CheckArrayData()
1335 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "array data table at " << cur_offset in CheckArrayData()
1345 if (cur_offset + array_data_offset + table_size > insn_count) { in CheckArrayData()
1346 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid array data end: at " << cur_offset in CheckArrayData()
1348 << cur_offset + array_data_offset + table_size in CheckArrayData()
1355 bool MethodVerifier::CheckBranchTarget(uint32_t cur_offset) { in CheckBranchTarget() argument
1358 if (!GetBranchOffset(cur_offset, &offset, &isConditional, &selfOkay)) { in CheckBranchTarget()
1363 << reinterpret_cast<void*>(cur_offset); in CheckBranchTarget()
1368 if (((int64_t) cur_offset + (int64_t) offset) != (int64_t) (cur_offset + offset)) { in CheckBranchTarget()
1370 << reinterpret_cast<void*>(cur_offset) << " +" << offset; in CheckBranchTarget()
1374 int32_t abs_offset = cur_offset + offset; in CheckBranchTarget()
1380 << reinterpret_cast<void*>(cur_offset); in CheckBranchTarget()
1387 bool MethodVerifier::GetBranchOffset(uint32_t cur_offset, int32_t* pOffset, bool* pConditional, in GetBranchOffset() argument
1389 const uint16_t* insns = code_item_->insns_ + cur_offset; in GetBranchOffset()
1424 bool MethodVerifier::CheckSwitchTargets(uint32_t cur_offset) { in CheckSwitchTargets() argument
1426 DCHECK_LT(cur_offset, insn_count); in CheckSwitchTargets()
1427 const uint16_t* insns = code_item_->insns_ + cur_offset; in CheckSwitchTargets()
1430 if (static_cast<int32_t>(cur_offset) + switch_offset < 0 || in CheckSwitchTargets()
1431 cur_offset + switch_offset + 2 > insn_count) { in CheckSwitchTargets()
1432 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid switch start: at " << cur_offset in CheckSwitchTargets()
1441 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "unaligned switch table: at " << cur_offset in CheckSwitchTargets()
1447 if (!GetInstructionFlags(cur_offset + switch_offset).IsOpcode()) { in CheckSwitchTargets()
1448 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "switch table at " << cur_offset in CheckSwitchTargets()
1476 if (cur_offset + switch_offset + table_size > (uint32_t) insn_count) { in CheckSwitchTargets()
1477 Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "invalid switch end: at " << cur_offset in CheckSwitchTargets()
1479 << ", end " << (cur_offset + switch_offset + table_size) in CheckSwitchTargets()
1516 int32_t abs_offset = cur_offset + offset; in CheckSwitchTargets()
1522 << reinterpret_cast<void*>(cur_offset) in CheckSwitchTargets()