aboutsummaryrefslogtreecommitdiff
path: root/src/client/windows/crash_generation/minidump_generator.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/windows/crash_generation/minidump_generator.cc')
-rw-r--r--src/client/windows/crash_generation/minidump_generator.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/client/windows/crash_generation/minidump_generator.cc b/src/client/windows/crash_generation/minidump_generator.cc
index 786c9b93..100e365a 100644
--- a/src/client/windows/crash_generation/minidump_generator.cc
+++ b/src/client/windows/crash_generation/minidump_generator.cc
@@ -271,12 +271,14 @@ MinidumpGenerator::MinidumpGenerator(
dump_type_(dump_type),
is_client_pointers_(is_client_pointers),
dump_path_(dump_path),
+ uuid_generated_(false),
dump_file_(INVALID_HANDLE_VALUE),
full_dump_file_(INVALID_HANDLE_VALUE),
dump_file_is_internal_(false),
full_dump_file_is_internal_(false),
additional_streams_(NULL),
callback_info_(NULL) {
+ uuid_ = {0};
InitializeCriticalSection(&module_load_sync_);
InitializeCriticalSection(&get_proc_address_sync_);
}
@@ -562,15 +564,17 @@ MinidumpGenerator::UuidCreateType MinidumpGenerator::GetCreateUuid() {
}
bool MinidumpGenerator::GenerateDumpFilePath(wstring* file_path) {
- UUID id = {0};
+ if (!uuid_generated_) {
+ UuidCreateType create_uuid = GetCreateUuid();
+ if (!create_uuid) {
+ return false;
+ }
- UuidCreateType create_uuid = GetCreateUuid();
- if (!create_uuid) {
- return false;
+ create_uuid(&uuid_);
+ uuid_generated_ = true;
}
- create_uuid(&id);
- wstring id_str = GUIDString::GUIDToWString(&id);
+ wstring id_str = GUIDString::GUIDToWString(&uuid_);
*file_path = dump_path_ + TEXT("\\") + id_str + TEXT(".dmp");
return true;