Chromium Code Reviews| Index: runtime/vm/tags.cc |
| diff --git a/runtime/vm/tags.cc b/runtime/vm/tags.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..39424ef5bd16b46c21ed5a1dae1a63ac7b4c003b |
| --- /dev/null |
| +++ b/runtime/vm/tags.cc |
| @@ -0,0 +1,44 @@ |
| +// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +#include "vm/tags.h" |
| + |
| +#include "vm/isolate.h" |
| + |
| +namespace dart { |
| + |
| +const char* VMTag::TagName(uword id) { |
| + ASSERT(id < kNumVMTags); |
| + const TagEntry& entry = entries_[id]; |
| + ASSERT(entry.id == id); |
| + return entry.name; |
| +} |
| + |
| + |
| +VMTag::TagEntry VMTag::entries_[] = { |
| + { "InvalidTag", kInvalidTagId, }, |
| +#define DEFINE_VM_TAG_ENTRY(tag) \ |
| + { ""#tag, k##tag##TagId }, |
| + VM_TAG_LIST(DEFINE_VM_TAG_ENTRY) |
| +#undef DEFINE_VM_TAG_ENTRY |
| + { "kNumVMTags", kNumVMTags }, |
| +}; |
| + |
| + |
| +VMTagScope::VMTagScope(Isolate* isolate, uword tag) |
| + : StackResource(isolate), |
| + isolate_(isolate) { |
| + ASSERT(isolate_ != NULL); |
| + previous_tag_ = isolate_->vm_tag(); |
|
siva
2014/03/13 23:18:47
isolate()->vm_tag();
Cutch
2014/03/14 15:41:51
Done.
|
| + isolate_->set_vm_tag(tag); |
| +} |
| + |
| + |
| +VMTagScope::~VMTagScope() { |
| + ASSERT(isolate_ != NULL); |
| + isolate_->set_vm_tag(previous_tag_); |
|
siva
2014/03/13 23:18:47
isolate()->
Cutch
2014/03/14 15:41:51
Done.
|
| +} |
| + |
| + |
| +} // namespace dart |