OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include <cstdlib> | 5 #include <cstdlib> |
6 | 6 |
7 #include "vm/atomic.h" | 7 #include "vm/atomic.h" |
8 #include "vm/isolate.h" | 8 #include "vm/isolate.h" |
9 #include "vm/json_stream.h" | 9 #include "vm/json_stream.h" |
10 #include "vm/lockers.h" | 10 #include "vm/lockers.h" |
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 if ((file_open == NULL) || (file_write == NULL) || (file_close == NULL)) { | 445 if ((file_open == NULL) || (file_write == NULL) || (file_close == NULL)) { |
446 return; | 446 return; |
447 } | 447 } |
448 | 448 |
449 FinishGlobalBlock(); | 449 FinishGlobalBlock(); |
450 | 450 |
451 JSONStream js; | 451 JSONStream js; |
452 TimelineEventFilter filter; | 452 TimelineEventFilter filter; |
453 PrintJSON(&js, &filter); | 453 PrintJSON(&js, &filter); |
454 | 454 |
455 const char* format = "%s/dart-timeline-%" Pd ".json"; | |
456 intptr_t pid = OS::ProcessId(); | 455 intptr_t pid = OS::ProcessId(); |
457 intptr_t len = OS::SNPrint(NULL, 0, format, directory, pid); | 456 char* filename = OS::SCreate(NULL, |
458 char* filename = reinterpret_cast<char*>(malloc(len + 1)); | 457 "%s/dart-timeline-%" Pd ".json", directory, pid); |
459 OS::SNPrint(filename, len + 1, format, directory, pid); | |
460 void* file = (*file_open)(filename, true); | 458 void* file = (*file_open)(filename, true); |
461 if (file == NULL) { | 459 if (file == NULL) { |
462 OS::Print("Failed to write timeline file: %s\n", filename); | 460 OS::Print("Failed to write timeline file: %s\n", filename); |
463 free(filename); | 461 free(filename); |
464 return; | 462 return; |
465 } | 463 } |
466 free(filename); | 464 free(filename); |
467 (*file_write)(js.buffer()->buf(), js.buffer()->length(), file); | 465 (*file_write)(js.buffer()->buf(), js.buffer()->length(), file); |
468 (*file_close)(file); | 466 (*file_close)(file); |
469 } | 467 } |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
851 | 849 |
852 | 850 |
853 TimelineEventBlock* TimelineEventBlockIterator::Next() { | 851 TimelineEventBlock* TimelineEventBlockIterator::Next() { |
854 ASSERT(current_ != NULL); | 852 ASSERT(current_ != NULL); |
855 TimelineEventBlock* r = current_; | 853 TimelineEventBlock* r = current_; |
856 current_ = current_->next(); | 854 current_ = current_->next(); |
857 return r; | 855 return r; |
858 } | 856 } |
859 | 857 |
860 } // namespace dart | 858 } // namespace dart |
OLD | NEW |