1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-08 23:26:40 +02:00

Update breakpad to make it work with MinGW

This commit is contained in:
Dominik Schmidt
2014-04-14 19:23:44 +02:00
parent c912b76c49
commit b4f05b0831
1049 changed files with 57520 additions and 329083 deletions

View File

@@ -51,6 +51,9 @@ SimpleSerializer<BasicSourceLineResolver::Function>::range_map_serializer_;
size_t ModuleSerializer::SizeOf(const BasicSourceLineResolver::Module &module) {
size_t total_size_alloc_ = 0;
// Size of the "is_corrupt" flag.
total_size_alloc_ += SimpleSerializer<bool>::SizeOf(module.is_corrupt_);
// Compute memory size for each map component in Module class.
int map_index = 0;
map_sizes_[map_index++] = files_serializer_.SizeOf(module.files_);
@@ -65,22 +68,25 @@ size_t ModuleSerializer::SizeOf(const BasicSourceLineResolver::Module &module) {
module.cfi_delta_rules_);
// Header size.
total_size_alloc_ = kNumberMaps_ * sizeof(u_int32_t);
total_size_alloc_ += kNumberMaps_ * sizeof(uint32_t);
for (int i = 0; i < kNumberMaps_; ++i)
total_size_alloc_ += map_sizes_[i];
for (int i = 0; i < kNumberMaps_; ++i) {
total_size_alloc_ += map_sizes_[i];
}
// Extra one byte for null terminator for C-string copy safety.
++total_size_alloc_;
total_size_alloc_ += SimpleSerializer<char>::SizeOf(0);
return total_size_alloc_;
}
char *ModuleSerializer::Write(const BasicSourceLineResolver::Module &module,
char *dest) {
// Write the is_corrupt flag.
dest = SimpleSerializer<bool>::Write(module.is_corrupt_, dest);
// Write header.
memcpy(dest, map_sizes_, kNumberMaps_ * sizeof(u_int32_t));
dest += kNumberMaps_ * sizeof(u_int32_t);
memcpy(dest, map_sizes_, kNumberMaps_ * sizeof(uint32_t));
dest += kNumberMaps_ * sizeof(uint32_t);
// Write each map.
dest = files_serializer_.Write(module.files_, dest);
dest = functions_serializer_.Write(module.functions_, dest);
@@ -189,8 +195,9 @@ char* ModuleSerializer::SerializeSymbolFileData(
scoped_ptr<BasicSourceLineResolver::Module> module(
new BasicSourceLineResolver::Module("no name"));
scoped_array<char> buffer(new char[symbol_data.size() + 1]);
strcpy(buffer.get(), symbol_data.c_str());
if (!module->LoadMapFromMemory(buffer.get())) {
memcpy(buffer.get(), symbol_data.c_str(), symbol_data.size());
buffer.get()[symbol_data.size()] = '\0';
if (!module->LoadMapFromMemory(buffer.get(), symbol_data.size() + 1)) {
return NULL;
}
buffer.reset(NULL);