Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
dart-lang
sdk
runtime
vm
token_position.cc
Go to the documentation of this file.
1
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2
// for details. All rights reserved. Use of this source code is governed by a
3
// BSD-style license that can be found in the LICENSE file.
4
5
#include "
vm/token_position.h
"
6
7
#include "
vm/object.h
"
8
#include "
vm/zone_text_buffer.h
"
9
10
namespace
dart
{
11
12
uword
TokenPosition::Hash
()
const
{
13
return
Utils::WordHash
(value_);
14
}
15
16
TokenPosition
TokenPosition::Deserialize
(int32_t value) {
17
return
TokenPosition
(
value
);
18
}
19
20
int32_t
TokenPosition::Serialize
()
const
{
21
return
static_cast<
int32_t
>
(value_);
22
}
23
24
intptr_t
TokenPosition::EncodeCoveragePosition
(
bool
is_branch_coverage) {
25
// Normal coverage positions are encoded as 2 * pos, and branch coverage are
26
// encoded as 2 * pos + 1.
27
intptr_t encoded_position = 2 *
static_cast<
intptr_t
>
(value_);
28
return
is_branch_coverage ? encoded_position + 1 : encoded_position;
29
}
30
31
TokenPosition
TokenPosition::DecodeCoveragePosition
(intptr_t encoded_position,
32
bool
* is_branch_coverage) {
33
*is_branch_coverage = ((encoded_position % 2) == 1);
34
return
TokenPosition
(encoded_position / 2);
35
}
36
37
#define DEFINE_VALUES(name, value) \
38
const TokenPosition TokenPosition::k##name(value);
39
SENTINEL_TOKEN_DESCRIPTORS
(
DEFINE_VALUES
);
40
#undef DEFINE_VALUES
41
const
TokenPosition
TokenPosition::kMinSource
(kMinSourcePos);
42
const
TokenPosition
TokenPosition::kMaxSource
(kMaxSourcePos);
43
44
const
char
*
TokenPosition::ToCString
()
const
{
45
switch
(value_) {
46
#define DEFINE_CASE(name, value) \
47
case value: \
48
return #name;
49
SENTINEL_TOKEN_DESCRIPTORS
(
DEFINE_CASE
);
50
#undef DEFINE_CASE
51
default
:
52
break
;
53
}
54
ASSERT
(
IsReal
() ||
IsSynthetic
());
55
ZoneTextBuffer
buffer
(
Thread::Current
()->zone());
56
if
(
IsSynthetic
()) {
57
buffer
.AddString(
"syn:"
);
58
}
59
buffer
.Printf(
"%"
Pd32
""
, value_);
60
return
buffer
.buffer();
61
}
62
63
}
// namespace dart
dart::Thread::Current
static Thread * Current()
Definition
thread.h:361
dart::TokenPosition
Definition
token_position.h:62
dart::TokenPosition::DecodeCoveragePosition
static TokenPosition DecodeCoveragePosition(intptr_t encoded_position, bool *is_branch_coverage)
Definition
token_position.cc:31
dart::TokenPosition::EncodeCoveragePosition
intptr_t EncodeCoveragePosition(bool is_branch_coverage)
Definition
token_position.cc:24
dart::TokenPosition::IsSynthetic
bool IsSynthetic() const
Definition
token_position.h:191
dart::TokenPosition::ToCString
const char * ToCString() const
Definition
token_position.cc:44
dart::TokenPosition::Serialize
int32_t Serialize() const
Definition
token_position.cc:20
dart::TokenPosition::IsReal
bool IsReal() const
Definition
token_position.h:194
dart::TokenPosition::Deserialize
static TokenPosition Deserialize(int32_t value)
Definition
token_position.cc:16
dart::TokenPosition::Hash
uword Hash() const
Definition
token_position.cc:12
dart::TokenPosition::kMaxSource
static const TokenPosition kMaxSource
Definition
token_position.h:158
dart::TokenPosition::kMinSource
static const TokenPosition kMinSource
Definition
token_position.h:155
dart::Utils::WordHash
static uint32_t WordHash(intptr_t key)
Definition
utils.cc:217
dart::ZoneTextBuffer
Definition
zone_text_buffer.h:19
ASSERT
#define ASSERT(E)
Definition
entrypoints_verification_test.cc:25
buffer
static const uint8_t buffer[]
Definition
fl_pixel_buffer_texture_test.cc:44
value
uint8_t value
Definition
fl_standard_message_codec.cc:36
dart
Definition
dart_vm.cc:33
dart::uword
uintptr_t uword
Definition
globals.h:501
object.h
Pd32
#define Pd32
Definition
globals.h:412
DEFINE_VALUES
#define DEFINE_VALUES(name, value)
Definition
token_position.cc:37
DEFINE_CASE
#define DEFINE_CASE(name, value)
token_position.h
SENTINEL_TOKEN_DESCRIPTORS
#define SENTINEL_TOKEN_DESCRIPTORS(V)
Definition
token_position.h:43
zone_text_buffer.h
Generated on Fri Apr 26 2024 06:15:20 for Flutter Engine by
1.9.8