1888 {
1889 Deserializer::Local
d(d_);
1890
1893
1895 FunctionPtr func =
static_cast<FunctionPtr
>(
d.Ref(
id));
1899
1900#if defined(DEBUG)
1901 func->untag()->entry_point_ = 0;
1902 func->untag()->unchecked_entry_point_ = 0;
1903#endif
1904
1905#if defined(DART_PRECOMPILED_RUNTIME)
1907 const intptr_t code_index =
d.ReadUnsigned();
1908 uword entry_point = 0;
1909 CodePtr
code = d_->GetCodeByIndex(code_index, &entry_point);
1910 func->untag()->code_ =
code;
1911 if (entry_point != 0) {
1912 func->untag()->entry_point_ = entry_point;
1913 func->untag()->unchecked_entry_point_ = entry_point;
1914 }
1915#else
1918 func->untag()->unoptimized_code_ =
static_cast<CodePtr
>(
d.ReadRef());
1919 func->untag()->code_ =
static_cast<CodePtr
>(
d.ReadRef());
1920 func->untag()->ic_data_array_ =
static_cast<ArrayPtr
>(
d.ReadRef());
1921 }
1922#endif
1923
1924#if !defined(DART_PRECOMPILED_RUNTIME)
1926 func->untag()->positional_parameter_names_ =
1927 static_cast<ArrayPtr
>(
d.ReadRef());
1928#endif
1929#if !defined(DART_PRECOMPILED_RUNTIME) || \
1930 (defined(DART_PRECOMPILED_RUNTIME) && !defined(PRODUCT))
1931 func->untag()->token_pos_ =
d.ReadTokenPosition();
1932#endif
1933#if !defined(DART_PRECOMPILED_RUNTIME)
1934 func->untag()->end_token_pos_ =
d.ReadTokenPosition();
1935 func->untag()->kernel_offset_ =
d.Read<uint32_t>();
1936 func->untag()->unboxed_parameters_info_.Reset();
1937 func->untag()->packed_fields_ =
d.Read<uint32_t>();
1938#endif
1939
1940 func->untag()->kind_tag_ =
d.Read<uint32_t>();
1941#if !defined(DART_PRECOMPILED_RUNTIME)
1942 func->untag()->usage_counter_ = 0;
1943 func->untag()->optimized_instruction_count_ = 0;
1944 func->untag()->optimized_call_site_count_ = 0;
1945 func->untag()->deoptimization_counter_ = 0;
1946 func->untag()->state_bits_ = 0;
1947 func->untag()->inlining_depth_ = 0;
1948#endif
1949 }
1950 }
bool is_canonical() const
static void InitializeHeader(ObjectPtr raw, intptr_t cid, intptr_t size, bool is_canonical=false)