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

Unified Diff: base/tracked.cc

Issue 7778033: Add trace code to track all posted tasks in message_loop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 4 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: base/tracked.cc
diff --git a/base/tracked.cc b/base/tracked.cc
index 124e721c727e8408c46b9025432f0e287b399c2b..291b3855e3dbd00fc4228488d2cf47e8235d2531 100644
--- a/base/tracked.cc
+++ b/base/tracked.cc
@@ -13,6 +13,7 @@ void* _ReturnAddress();
#include "base/tracked.h"
+#include "base/string_number_conversions.h"
#include "base/stringprintf.h"
#include "base/tracked_objects.h"
@@ -22,28 +23,42 @@ namespace tracked_objects {
//------------------------------------------------------------------------------
-Location::Location(const char* function_name,
- const char* file_name,
- int line_number,
+Location::Location(const char* file_line,
+ const char* function_name,
const void* program_counter)
- : function_name_(function_name),
- file_name_(file_name),
- line_number_(line_number),
+ : file_line_(file_line),
+ function_name_(function_name),
program_counter_(program_counter) {
}
Location::Location()
- : function_name_("Unknown"),
- file_name_("Unknown"),
- line_number_(-1),
+ : file_line_("Unknown:-1"),
+ function_name_("Unknown"),
program_counter_(NULL) {
}
+const base::StringPiece Location::file_name() const {
+ base::StringPiece str(file_line_);
+ return str.substr(0, str.find_last_of(':'));
+}
+
+int Location::line_number() const {
+ base::StringPiece str(file_line_);
jar (doing other things) 2011/09/01 18:17:51 nit: style guide suggests abbreviations be avoided
jbates 2011/09/01 23:01:52 Done.
+ base::StringPiece::size_type colon1 = str.find_last_of(':');
+ int line_num = 0;
+ base::StringToInt(str.substr(colon1).as_string(), &line_num);
+ return line_num;
+}
+
+const base::StringPiece Location::function_name() const {
+ return base::StringPiece(function_name_);
+}
+
void Location::Write(bool display_filename, bool display_function_name,
std::string* output) const {
base::StringAppendF(output, "%s[%d] ",
- display_filename ? file_name_ : "line",
- line_number_);
+ display_filename ? file_name().as_string().c_str() : "line",
+ line_number());
if (display_function_name) {
WriteFunctionName(output);
@@ -96,7 +111,7 @@ void Tracked::SetBirthPlace(const Location& from_here) {
}
const Location Tracked::GetBirthPlace() const {
- static Location kNone("NoFunctionName", "NeedToSetBirthPlace", -1, NULL);
+ static Location kNone("NeedToSetBirthPlace:-1", "NoFunctionName", NULL);
return kNone;
}
bool Tracked::MissingBirthPlace() const { return false; }
@@ -130,7 +145,7 @@ void Tracked::SetBirthPlace(const Location& from_here) {
}
const Location Tracked::GetBirthPlace() const {
- static Location kNone("UnknownFunctionName", "UnknownFile", -1, NULL);
+ static Location kNone;
return tracked_births_ ? tracked_births_->location() : kNone;
}
@@ -139,7 +154,8 @@ void Tracked::ResetBirthTime() {
}
bool Tracked::MissingBirthPlace() const {
- return !tracked_births_ || tracked_births_->location().line_number() == -1;
+ return !tracked_births_ ||
+ tracked_births_->location().program_counter() == NULL;
}
#endif // !defined(TRACK_ALL_TASK_OBJECTS)

Powered by Google App Engine
This is Rietveld 408576698