| Index: syzygy/refinery/process_state/process_state_util.cc
|
| diff --git a/syzygy/refinery/process_state/process_state_util.cc b/syzygy/refinery/process_state/process_state_util.cc
|
| index 4e5ccb0eceb7836306dfef74400e85c6ce9d8dfb..b307724bb43d2734144cdddbf753f0f2abf39afd 100644
|
| --- a/syzygy/refinery/process_state/process_state_util.cc
|
| +++ b/syzygy/refinery/process_state/process_state_util.cc
|
| @@ -72,10 +72,8 @@ bool ModuleLayerAccessor::GetModuleSignature(const Address va,
|
| return false;
|
|
|
| // Retrieve the signature.
|
| - ModuleLayerPtr layer;
|
| - process_state_->FindOrCreateLayer(&layer);
|
| const Module& module = module_record->data();
|
| - if (!layer->mutable_data()->Find(module.module_id(), signature))
|
| + if (!GetModuleSignature(module.module_id(), signature))
|
| return false;
|
|
|
| // Set the signature's address.
|
| @@ -91,9 +89,34 @@ bool ModuleLayerAccessor::GetModuleSignature(const Address va,
|
| return true;
|
| }
|
|
|
| +bool ModuleLayerAccessor::GetModuleSignature(const ModuleId id,
|
| + pe::PEFile::Signature* signature) {
|
| + DCHECK_NE(kNoModuleId, id);
|
| + DCHECK(signature);
|
| +
|
| + ModuleLayerPtr layer;
|
| + process_state_->FindOrCreateLayer(&layer);
|
| + return layer->data().Find(id, signature);
|
| +}
|
| +
|
| +ModuleId ModuleLayerAccessor::GetModuleId(const Address va) {
|
| + ModuleRecordPtr module_record;
|
| + if (!process_state_->FindSingleRecord(va, &module_record))
|
| + return kNoModuleId;
|
| + return module_record->data().module_id();
|
| +}
|
| +
|
| +ModuleId ModuleLayerAccessor::GetModuleId(
|
| + const pe::PEFile::Signature& signature) {
|
| + ModuleLayerPtr layer;
|
| + process_state_->FindOrCreateLayer(&layer);
|
| + return layer->data().Find(signature);
|
| +}
|
| +
|
| bool AddTypedBlockRecord(const AddressRange& range,
|
| base::StringPiece16 data_name,
|
| - base::StringPiece16 type_name,
|
| + ModuleId module_id,
|
| + TypeId type_id,
|
| ProcessState* process_state) {
|
| DCHECK(range.IsValid());
|
| DCHECK(process_state);
|
| @@ -105,10 +128,8 @@ bool AddTypedBlockRecord(const AddressRange& range,
|
| return false;
|
| typedblock_proto->set_data_name(data_name_narrow);
|
|
|
| - std::string type_name_narrow;
|
| - if (!base::UTF16ToUTF8(type_name.data(), type_name.size(), &type_name_narrow))
|
| - return false;
|
| - typedblock_proto->set_type_name(type_name_narrow);
|
| + typedblock_proto->set_module_id(module_id);
|
| + typedblock_proto->set_type_id(type_id);
|
|
|
| return true;
|
| }
|
|
|