Lines Matching refs:pptr
368 ir::FieldAnnotation* Reader::ParseFieldAnnotation(const dex::u1** pptr) { in ParseFieldAnnotation() argument
369 auto dex_field_annotation = reinterpret_cast<const dex::FieldAnnotationsItem*>(*pptr); in ParseFieldAnnotation()
378 *pptr += sizeof(dex::FieldAnnotationsItem); in ParseFieldAnnotation()
382 ir::MethodAnnotation* Reader::ParseMethodAnnotation(const dex::u1** pptr) { in ParseMethodAnnotation() argument
384 reinterpret_cast<const dex::MethodAnnotationsItem*>(*pptr); in ParseMethodAnnotation()
393 *pptr += sizeof(dex::MethodAnnotationsItem); in ParseMethodAnnotation()
397 ir::ParamAnnotation* Reader::ParseParamAnnotation(const dex::u1** pptr) { in ParseParamAnnotation() argument
399 reinterpret_cast<const dex::ParameterAnnotationsItem*>(*pptr); in ParseParamAnnotation()
408 *pptr += sizeof(dex::ParameterAnnotationsItem); in ParseParamAnnotation()
412 ir::EncodedField* Reader::ParseEncodedField(const dex::u1** pptr, dex::u4* base_index) { in ParseEncodedField() argument
415 auto field_index = dex::ReadULeb128(pptr); in ParseEncodedField()
424 ir_encoded_field->access_flags = dex::ReadULeb128(pptr); in ParseEncodedField()
432 static T ParseIntValue(const dex::u1** pptr, size_t size) { in ParseIntValue() argument
440 value |= T(*(*pptr)++) << (i * 8); in ParseIntValue()
455 static T ParseFloatValue(const dex::u1** pptr, size_t size) { in ParseFloatValue() argument
463 *p++ = *(*pptr)++; in ParseFloatValue()
468 ir::EncodedValue* Reader::ParseEncodedValue(const dex::u1** pptr) { in ParseEncodedValue() argument
471 SLICER_EXTRA(auto base_ptr = *pptr); in ParseEncodedValue()
473 dex::u1 header = *(*pptr)++; in ParseEncodedValue()
481 ir_encoded_value->u.byte_value = ParseIntValue<int8_t>(pptr, arg + 1); in ParseEncodedValue()
485 ir_encoded_value->u.short_value = ParseIntValue<int16_t>(pptr, arg + 1); in ParseEncodedValue()
489 ir_encoded_value->u.char_value = ParseIntValue<uint16_t>(pptr, arg + 1); in ParseEncodedValue()
493 ir_encoded_value->u.int_value = ParseIntValue<int32_t>(pptr, arg + 1); in ParseEncodedValue()
497 ir_encoded_value->u.long_value = ParseIntValue<int64_t>(pptr, arg + 1); in ParseEncodedValue()
501 ir_encoded_value->u.float_value = ParseFloatValue<float>(pptr, arg + 1); in ParseEncodedValue()
505 ir_encoded_value->u.double_value = ParseFloatValue<double>(pptr, arg + 1); in ParseEncodedValue()
509 dex::u4 index = ParseIntValue<dex::u4>(pptr, arg + 1); in ParseEncodedValue()
514 dex::u4 index = ParseIntValue<dex::u4>(pptr, arg + 1); in ParseEncodedValue()
519 dex::u4 index = ParseIntValue<dex::u4>(pptr, arg + 1); in ParseEncodedValue()
524 dex::u4 index = ParseIntValue<dex::u4>(pptr, arg + 1); in ParseEncodedValue()
529 dex::u4 index = ParseIntValue<dex::u4>(pptr, arg + 1); in ParseEncodedValue()
535 ir_encoded_value->u.array_value = ParseEncodedArray(pptr); in ParseEncodedValue()
540 ir_encoded_value->u.annotation_value = ParseAnnotation(pptr); in ParseEncodedValue()
556 SLICER_EXTRA(ir_encoded_value->original = slicer::MemView(base_ptr, *pptr - base_ptr)); in ParseEncodedValue()
561 ir::Annotation* Reader::ParseAnnotation(const dex::u1** pptr) { in ParseAnnotation() argument
564 dex::u4 type_index = dex::ReadULeb128(pptr); in ParseAnnotation()
565 dex::u4 elements_count = dex::ReadULeb128(pptr); in ParseAnnotation()
573 ir_element->name = GetString(dex::ReadULeb128(pptr)); in ParseAnnotation()
574 ir_element->value = ParseEncodedValue(pptr); in ParseAnnotation()
582 ir::EncodedArray* Reader::ParseEncodedArray(const dex::u1** pptr) { in ParseEncodedArray() argument
585 dex::u4 count = dex::ReadULeb128(pptr); in ParseEncodedArray()
587 ir_encoded_array->values.push_back(ParseEncodedValue(pptr)); in ParseEncodedArray()
768 ir::EncodedMethod* Reader::ParseEncodedMethod(const dex::u1** pptr, dex::u4* base_index) { in ParseEncodedMethod() argument
771 auto method_index = dex::ReadULeb128(pptr); in ParseEncodedMethod()
780 ir_encoded_method->access_flags = dex::ReadULeb128(pptr); in ParseEncodedMethod()
782 dex::u4 code_offset = dex::ReadULeb128(pptr); in ParseEncodedMethod()