Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(102)

Unified Diff: runtime/vm/source_report.cc

Issue 1644793002: Replace intptr_t with TokenDescriptor (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/source_report.h ('k') | runtime/vm/stack_frame.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/source_report.cc
diff --git a/runtime/vm/source_report.cc b/runtime/vm/source_report.cc
index 93400bb455cdead15f52361d4f6b165cdb1bf799..6290b6edb1e09946159e4ce2909236d65e132fe2 100644
--- a/runtime/vm/source_report.cc
+++ b/runtime/vm/source_report.cc
@@ -15,16 +15,16 @@ SourceReport::SourceReport(intptr_t report_set, CompileMode compile_mode)
compile_mode_(compile_mode),
thread_(NULL),
script_(NULL),
- start_pos_(-1),
- end_pos_(-1),
+ start_pos_(TokenPosition::kNoSource),
+ end_pos_(TokenPosition::kNoSource),
next_script_index_(0) {
}
void SourceReport::Init(Thread* thread,
const Script* script,
- intptr_t start_pos,
- intptr_t end_pos) {
+ TokenPosition start_pos,
+ TokenPosition end_pos) {
thread_ = thread;
script_ = script;
start_pos_ = start_pos;
@@ -46,8 +46,10 @@ bool SourceReport::ShouldSkipFunction(const Function& func) {
// The function is from the wrong script.
return true;
}
- if (((start_pos_ > 0) && (func.end_token_pos() < start_pos_)) ||
- ((end_pos_ > 0) && (func.token_pos() > end_pos_))) {
+ if (((start_pos_ > TokenPosition::kMinSource) &&
+ (func.end_token_pos() < start_pos_)) ||
+ ((end_pos_ > TokenPosition::kMinSource) &&
+ (func.token_pos() > end_pos_))) {
// The function does not intersect with the requested token range.
return true;
}
@@ -111,8 +113,8 @@ bool SourceReport::ScriptIsLoadedByLibrary(const Script& script,
void SourceReport::PrintCallSitesData(JSONObject* jsobj,
const Function& func,
const Code& code) {
- const intptr_t begin_pos = func.token_pos();
- const intptr_t end_pos = func.end_token_pos();
+ const TokenPosition begin_pos = func.token_pos();
+ const TokenPosition end_pos = func.end_token_pos();
ZoneGrowableArray<const ICData*>* ic_data_array =
new(zone()) ZoneGrowableArray<const ICData*>();
@@ -129,7 +131,7 @@ void SourceReport::PrintCallSitesData(JSONObject* jsobj,
HANDLESCOPE(thread());
const ICData* ic_data = (*ic_data_array)[iter.DeoptId()];
if (!ic_data->IsNull()) {
- const intptr_t token_pos = iter.TokenPos();
+ const TokenPosition token_pos = iter.TokenPos();
if ((token_pos < begin_pos) || (token_pos > end_pos)) {
// Does not correspond to a valid source position.
continue;
@@ -143,8 +145,8 @@ void SourceReport::PrintCallSitesData(JSONObject* jsobj,
void SourceReport::PrintCoverageData(JSONObject* jsobj,
const Function& func,
const Code& code) {
- const intptr_t begin_pos = func.token_pos();
- const intptr_t end_pos = func.end_token_pos();
+ const TokenPosition begin_pos = func.token_pos();
+ const TokenPosition end_pos = func.end_token_pos();
ZoneGrowableArray<const ICData*>* ic_data_array =
new(zone()) ZoneGrowableArray<const ICData*>();
@@ -156,7 +158,7 @@ void SourceReport::PrintCoverageData(JSONObject* jsobj,
const int kCoverageMiss = 1;
const int kCoverageHit = 2;
- intptr_t func_length = (end_pos - begin_pos) + 1;
+ intptr_t func_length = (end_pos.Pos() - begin_pos.Pos()) + 1;
GrowableArray<char> coverage(func_length);
coverage.SetLength(func_length);
for (int i = 0; i < func_length; i++) {
@@ -170,13 +172,13 @@ void SourceReport::PrintCoverageData(JSONObject* jsobj,
HANDLESCOPE(thread());
const ICData* ic_data = (*ic_data_array)[iter.DeoptId()];
if (!ic_data->IsNull()) {
- const intptr_t token_pos = iter.TokenPos();
+ const TokenPosition token_pos = iter.TokenPos();
if ((token_pos < begin_pos) || (token_pos > end_pos)) {
// Does not correspond to a valid source position.
continue;
}
intptr_t count = ic_data->AggregateCount();
- intptr_t token_offset = token_pos - begin_pos;
+ intptr_t token_offset = token_pos.Pos() - begin_pos.Pos();
if (count > 0) {
coverage[token_offset] = kCoverageHit;
} else {
@@ -192,7 +194,8 @@ void SourceReport::PrintCoverageData(JSONObject* jsobj,
JSONArray hits(&cov, "hits");
for (int i = 0; i < func_length; i++) {
if (coverage[i] == kCoverageHit) {
- hits.AddValue(begin_pos + i); // Add the token position of the hit.
+ // Add the token position of the hit.
+ hits.AddValue(begin_pos.Pos() + i);
}
}
}
@@ -200,7 +203,8 @@ void SourceReport::PrintCoverageData(JSONObject* jsobj,
JSONArray misses(&cov, "misses");
for (int i = 0; i < func_length; i++) {
if (coverage[i] == kCoverageMiss) {
- misses.AddValue(begin_pos + i); // Add the token position of the miss.
+ // Add the token position of the miss.
+ misses.AddValue(begin_pos.Pos() + i);
}
}
}
@@ -212,13 +216,13 @@ void SourceReport::PrintPossibleBreakpointsData(JSONObject* jsobj,
const uint8_t kSafepointKind = (RawPcDescriptors::kIcCall |
RawPcDescriptors::kUnoptStaticCall |
RawPcDescriptors::kRuntimeCall);
- const intptr_t begin_pos = func.token_pos();
- const intptr_t end_pos = func.end_token_pos();
+ const TokenPosition begin_pos = func.token_pos();
+ const TokenPosition end_pos = func.end_token_pos();
const PcDescriptors& descriptors = PcDescriptors::Handle(
zone(), code.pc_descriptors());
- intptr_t func_length = (end_pos - begin_pos) + 1;
+ intptr_t func_length = (end_pos.Pos() - begin_pos.Pos()) + 1;
GrowableArray<char> possible(func_length);
possible.SetLength(func_length);
for (int i = 0; i < func_length; i++) {
@@ -227,19 +231,20 @@ void SourceReport::PrintPossibleBreakpointsData(JSONObject* jsobj,
PcDescriptors::Iterator iter(descriptors, kSafepointKind);
while (iter.MoveNext()) {
- const intptr_t token_pos = iter.TokenPos();
+ const TokenPosition token_pos = iter.TokenPos();
if ((token_pos < begin_pos) || (token_pos > end_pos)) {
// Does not correspond to a valid source position.
continue;
}
- intptr_t token_offset = token_pos - begin_pos;
+ intptr_t token_offset = token_pos.Pos() - begin_pos.Pos();
possible[token_offset] = true;
}
JSONArray bpts(jsobj, "possibleBreakpoints");
for (int i = 0; i < func_length; i++) {
if (possible[i]) {
- bpts.AddValue(begin_pos + i); // Add the token position.
+ // Add the token position.
+ bpts.AddValue(begin_pos.Pos() + i);
}
}
}
@@ -259,8 +264,8 @@ void SourceReport::VisitFunction(JSONArray* jsarr, const Function& func) {
}
const Script& script = Script::Handle(zone(), func.script());
- const intptr_t begin_pos = func.token_pos();
- const intptr_t end_pos = func.end_token_pos();
+ const TokenPosition begin_pos = func.token_pos();
+ const TokenPosition end_pos = func.end_token_pos();
Code& code = Code::Handle(zone(), func.unoptimized_code());
if (code.IsNull()) {
@@ -341,7 +346,8 @@ void SourceReport::VisitClosures(JSONArray* jsarr) {
void SourceReport::PrintJSON(JSONStream* js,
const Script& script,
- intptr_t start_pos, intptr_t end_pos) {
+ TokenPosition start_pos,
+ TokenPosition end_pos) {
Init(Thread::Current(), &script, start_pos, end_pos);
JSONObject report(js);
« no previous file with comments | « runtime/vm/source_report.h ('k') | runtime/vm/stack_frame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698