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

Side by Side Diff: src/prettyprinter.cc

Issue 328343003: Remove dependency on Vector from platform files (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: updates Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/platform-win32.cc ('k') | src/profile-generator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stdarg.h> 5 #include <stdarg.h>
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #include "src/ast-value-factory.h" 9 #include "src/ast-value-factory.h"
10 #include "src/prettyprinter.h" 10 #include "src/prettyprinter.h"
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 } 486 }
487 output_[0] = '\0'; 487 output_[0] = '\0';
488 pos_ = 0; 488 pos_ = 0;
489 } 489 }
490 490
491 491
492 void PrettyPrinter::Print(const char* format, ...) { 492 void PrettyPrinter::Print(const char* format, ...) {
493 for (;;) { 493 for (;;) {
494 va_list arguments; 494 va_list arguments;
495 va_start(arguments, format); 495 va_start(arguments, format);
496 int n = OS::VSNPrintF(Vector<char>(output_, size_) + pos_, 496 int n = VSNPrintF(Vector<char>(output_, size_) + pos_,
497 format, 497 format,
498 arguments); 498 arguments);
499 va_end(arguments); 499 va_end(arguments);
500 500
501 if (n >= 0) { 501 if (n >= 0) {
502 // there was enough space - we are done 502 // there was enough space - we are done
503 pos_ += n; 503 pos_ += n;
504 return; 504 return;
505 } else { 505 } else {
506 // there was not enough space - allocate more and try again 506 // there was not enough space - allocate more and try again
507 const int slack = 32; 507 const int slack = 32;
508 int new_size = size_ + (size_ >> 1) + slack; 508 int new_size = size_ + (size_ >> 1) + slack;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 } 667 }
668 668
669 669
670 void AstPrinter::PrintLiteralWithModeIndented(const char* info, 670 void AstPrinter::PrintLiteralWithModeIndented(const char* info,
671 Variable* var, 671 Variable* var,
672 Handle<Object> value) { 672 Handle<Object> value) {
673 if (var == NULL) { 673 if (var == NULL) {
674 PrintLiteralIndented(info, value, true); 674 PrintLiteralIndented(info, value, true);
675 } else { 675 } else {
676 EmbeddedVector<char, 256> buf; 676 EmbeddedVector<char, 256> buf;
677 int pos = OS::SNPrintF(buf, "%s (mode = %s", info, 677 int pos = SNPrintF(buf, "%s (mode = %s", info,
678 Variable::Mode2String(var->mode())); 678 Variable::Mode2String(var->mode()));
679 OS::SNPrintF(buf + pos, ")"); 679 SNPrintF(buf + pos, ")");
680 PrintLiteralIndented(buf.start(), value, true); 680 PrintLiteralIndented(buf.start(), value, true);
681 } 681 }
682 } 682 }
683 683
684 684
685 void AstPrinter::PrintLabelsIndented(ZoneList<const AstString*>* labels) { 685 void AstPrinter::PrintLabelsIndented(ZoneList<const AstString*>* labels) {
686 if (labels == NULL || labels->length() == 0) return; 686 if (labels == NULL || labels->length() == 0) return;
687 PrintIndented("LABELS "); 687 PrintIndented("LABELS ");
688 PrintLabels(labels); 688 PrintLabels(labels);
689 Print("\n"); 689 Print("\n");
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 Visit(node->values()->at(i)); 1032 Visit(node->values()->at(i));
1033 } 1033 }
1034 } 1034 }
1035 } 1035 }
1036 1036
1037 1037
1038 // TODO(svenpanne) Start with IndentedScope. 1038 // TODO(svenpanne) Start with IndentedScope.
1039 void AstPrinter::VisitVariableProxy(VariableProxy* node) { 1039 void AstPrinter::VisitVariableProxy(VariableProxy* node) {
1040 Variable* var = node->var(); 1040 Variable* var = node->var();
1041 EmbeddedVector<char, 128> buf; 1041 EmbeddedVector<char, 128> buf;
1042 int pos = OS::SNPrintF(buf, "VAR PROXY"); 1042 int pos = SNPrintF(buf, "VAR PROXY");
1043 switch (var->location()) { 1043 switch (var->location()) {
1044 case Variable::UNALLOCATED: 1044 case Variable::UNALLOCATED:
1045 break; 1045 break;
1046 case Variable::PARAMETER: 1046 case Variable::PARAMETER:
1047 OS::SNPrintF(buf + pos, " parameter[%d]", var->index()); 1047 SNPrintF(buf + pos, " parameter[%d]", var->index());
1048 break; 1048 break;
1049 case Variable::LOCAL: 1049 case Variable::LOCAL:
1050 OS::SNPrintF(buf + pos, " local[%d]", var->index()); 1050 SNPrintF(buf + pos, " local[%d]", var->index());
1051 break; 1051 break;
1052 case Variable::CONTEXT: 1052 case Variable::CONTEXT:
1053 OS::SNPrintF(buf + pos, " context[%d]", var->index()); 1053 SNPrintF(buf + pos, " context[%d]", var->index());
1054 break; 1054 break;
1055 case Variable::LOOKUP: 1055 case Variable::LOOKUP:
1056 OS::SNPrintF(buf + pos, " lookup"); 1056 SNPrintF(buf + pos, " lookup");
1057 break; 1057 break;
1058 } 1058 }
1059 PrintLiteralWithModeIndented(buf.start(), var, node->name()); 1059 PrintLiteralWithModeIndented(buf.start(), var, node->name());
1060 } 1060 }
1061 1061
1062 1062
1063 void AstPrinter::VisitAssignment(Assignment* node) { 1063 void AstPrinter::VisitAssignment(Assignment* node) {
1064 IndentedScope indent(this, Token::Name(node->op())); 1064 IndentedScope indent(this, Token::Name(node->op()));
1065 Visit(node->target()); 1065 Visit(node->target());
1066 Visit(node->value()); 1066 Visit(node->value());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1113 1113
1114 1114
1115 void AstPrinter::VisitUnaryOperation(UnaryOperation* node) { 1115 void AstPrinter::VisitUnaryOperation(UnaryOperation* node) {
1116 IndentedScope indent(this, Token::Name(node->op())); 1116 IndentedScope indent(this, Token::Name(node->op()));
1117 Visit(node->expression()); 1117 Visit(node->expression());
1118 } 1118 }
1119 1119
1120 1120
1121 void AstPrinter::VisitCountOperation(CountOperation* node) { 1121 void AstPrinter::VisitCountOperation(CountOperation* node) {
1122 EmbeddedVector<char, 128> buf; 1122 EmbeddedVector<char, 128> buf;
1123 OS::SNPrintF(buf, "%s %s", (node->is_prefix() ? "PRE" : "POST"), 1123 SNPrintF(buf, "%s %s", (node->is_prefix() ? "PRE" : "POST"),
1124 Token::Name(node->op())); 1124 Token::Name(node->op()));
1125 IndentedScope indent(this, buf.start()); 1125 IndentedScope indent(this, buf.start());
1126 Visit(node->expression()); 1126 Visit(node->expression());
1127 } 1127 }
1128 1128
1129 1129
1130 void AstPrinter::VisitBinaryOperation(BinaryOperation* node) { 1130 void AstPrinter::VisitBinaryOperation(BinaryOperation* node) {
1131 IndentedScope indent(this, Token::Name(node->op())); 1131 IndentedScope indent(this, Token::Name(node->op()));
1132 Visit(node->left()); 1132 Visit(node->left());
1133 Visit(node->right()); 1133 Visit(node->right());
1134 } 1134 }
1135 1135
1136 1136
1137 void AstPrinter::VisitCompareOperation(CompareOperation* node) { 1137 void AstPrinter::VisitCompareOperation(CompareOperation* node) {
1138 IndentedScope indent(this, Token::Name(node->op())); 1138 IndentedScope indent(this, Token::Name(node->op()));
1139 Visit(node->left()); 1139 Visit(node->left());
1140 Visit(node->right()); 1140 Visit(node->right());
1141 } 1141 }
1142 1142
1143 1143
1144 void AstPrinter::VisitThisFunction(ThisFunction* node) { 1144 void AstPrinter::VisitThisFunction(ThisFunction* node) {
1145 IndentedScope indent(this, "THIS-FUNCTION"); 1145 IndentedScope indent(this, "THIS-FUNCTION");
1146 } 1146 }
1147 1147
1148 #endif // DEBUG 1148 #endif // DEBUG
1149 1149
1150 } } // namespace v8::internal 1150 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/platform-win32.cc ('k') | src/profile-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698