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

Unified Diff: runtime/bin/vmstats_impl.cc

Issue 13006007: Added string appending to TextBuffer, removed STL use in vm_stats_impl. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 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
Index: runtime/bin/vmstats_impl.cc
===================================================================
--- runtime/bin/vmstats_impl.cc (revision 20477)
+++ runtime/bin/vmstats_impl.cc (working copy)
@@ -4,8 +4,6 @@
#include "bin/vmstats_impl.h"
-#include <sstream>
-
#include "bin/file.h"
#include "bin/log.h"
#include "bin/platform.h"
@@ -252,21 +250,22 @@
free(content);
} else {
// No status content with this URL, return file or resource content.
- std::string path(instance_->root_directory_);
- path.append(url);
+ dart::TextBuffer path(strlen(instance_->root_directory_) + strlen(url));
+ path.AddString(instance_->root_directory_);
+ path.AddString(url);
// Expand directory URLs.
if (strcmp(url, "/") == 0) {
- path.append(VMSTATS_HTML);
+ path.AddString(VMSTATS_HTML);
} else if (url[strlen(url) - 1] == '/') {
- path.append(INDEX_HTML);
+ path.AddString(INDEX_HTML);
}
bool success = false;
char* text_buffer = NULL;
- const char* content_type = ContentType(path.c_str());
- if (File::Exists(path.c_str())) {
- File* f = File::Open(path.c_str(), File::kRead);
+ const char* content_type = ContentType(path.buf());
+ if (File::Exists(path.buf())) {
+ File* f = File::Open(path.buf(), File::kRead);
if (f != NULL) {
intptr_t len = f->Length();
text_buffer = reinterpret_cast<char*>(malloc(len));
@@ -279,7 +278,7 @@
}
} else {
const char* resource;
- intptr_t len = Resources::ResourceLookup(path.c_str(), &resource);
+ intptr_t len = Resources::ResourceLookup(path.buf(), &resource);
if (len != Resources::kNoSuchInstance) {
ASSERT(len >= 0);
writeResponse(socket, content_type, resource, len);
@@ -303,9 +302,8 @@
char* VmStats::IsolatesStatus() {
- std::ostringstream stream;
- stream << '{' << std::endl;
- stream << "\"isolates\": [" << std::endl;
+ dart::TextBuffer text(64);
+ text.Printf("{\n\"isolates\": [\n");
IsolateTable::iterator itr;
bool first = true;
for (itr = isolate_table_.begin(); itr != isolate_table_.end(); ++itr) {
@@ -316,17 +314,16 @@
reinterpret_cast<intptr_t>(isolate));
char* status = VmStatusService::GetVmStatus(request);
if (status != NULL) {
- stream << status;
+ text.AddString(status);
if (!first) {
- stream << "," << std::endl;
+ text.AddString(",\n");
}
first = false;
+ free(status);
}
- free(status);
}
- stream << std::endl << "]";
- stream << std::endl << '}' << std::endl;
- return strdup(stream.str().c_str());
+ text.AddString("\n]\n}\n");
+ return strdup(text.buf());
}
« no previous file with comments | « runtime/bin/vmstats_impl.h ('k') | runtime/platform/json.h » ('j') | runtime/platform/json.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698