Flutter Engine
The Flutter Engine
Public Member Functions | Static Public Member Functions | List of all members
dart::kernel::UnboxingInfoMetadataHelper Class Reference

#include <kernel_translation_helper.h>

Inheritance diagram for dart::kernel::UnboxingInfoMetadataHelper:
dart::kernel::MetadataHelper

Public Member Functions

 UnboxingInfoMetadataHelper (KernelReaderHelper *helper)
 
UnboxingInfoMetadataGetUnboxingInfoMetadata (intptr_t node_offset)
 
- Public Member Functions inherited from dart::kernel::MetadataHelper
 MetadataHelper (KernelReaderHelper *helper, const char *tag, bool precompiler_only)
 

Static Public Member Functions

static const char * tag ()
 

Additional Inherited Members

- Protected Member Functions inherited from dart::kernel::MetadataHelper
intptr_t FindMetadataMapping (intptr_t node_offset)
 
intptr_t GetNextMetadataPayloadOffset (intptr_t node_offset)
 
intptr_t GetComponentMetadataPayloadOffset ()
 
- Protected Attributes inherited from dart::kernel::MetadataHelper
KernelReaderHelperhelper_
 
TranslationHelpertranslation_helper_
 

Detailed Description

Definition at line 1250 of file kernel_translation_helper.h.

Constructor & Destructor Documentation

◆ UnboxingInfoMetadataHelper()

dart::kernel::UnboxingInfoMetadataHelper::UnboxingInfoMetadataHelper ( KernelReaderHelper helper)
explicit

Definition at line 2102 of file kernel_translation_helper.cc.

2104 : MetadataHelper(helper, tag(), /* precompiler_only = */ true) {}
MetadataHelper(KernelReaderHelper *helper, const char *tag, bool precompiler_only)

Member Function Documentation

◆ GetUnboxingInfoMetadata()

UnboxingInfoMetadata * dart::kernel::UnboxingInfoMetadataHelper::GetUnboxingInfoMetadata ( intptr_t  node_offset)

Definition at line 2106 of file kernel_translation_helper.cc.

2107 {
2108 const intptr_t md_offset = GetNextMetadataPayloadOffset(node_offset);
2109
2110 if (md_offset < 0) {
2111 return nullptr;
2112 }
2113
2114 AlternativeReadingScopeWithNewData alt(&helper_->reader_,
2115 &H.metadata_payloads(), md_offset);
2116
2117 const intptr_t num_args = helper_->ReadUInt();
2118 const auto info = new (helper_->zone_) UnboxingInfoMetadata();
2119 info->SetArgsCount(num_args);
2120 const int8_t flags = helper_->ReadByte();
2121 info->must_use_stack_calling_convention =
2123 info->has_overrides_with_less_direct_parameters =
2124 (flags &
2127 0) {
2128 for (intptr_t i = 0; i < num_args; i++) {
2129 info->unboxed_args_info[i] = ReadUnboxingType();
2130 }
2131 info->return_info = ReadUnboxingType();
2132 }
2133 return info;
2134}
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
Definition: DM.cpp:213
intptr_t GetNextMetadataPayloadOffset(intptr_t node_offset)
static constexpr uint8_t kMustUseStackCallingConventionFlag
static constexpr uint8_t kHasUnboxedParameterOrReturnValueFlag
static constexpr uint8_t kHasOverridesWithLessDirectParametersFlag
FlutterSemanticsFlag flags
Definition: SkMD5.cpp:130

◆ tag()

static const char * dart::kernel::UnboxingInfoMetadataHelper::tag ( )
inlinestatic

Definition at line 1252 of file kernel_translation_helper.h.

1252{ return "vm.unboxing-info.metadata"; }

The documentation for this class was generated from the following files: