1
0
Fork 0

Lock when trying to read source lines.

This commit is contained in:
ZehMatt 2017-12-18 19:21:43 +01:00 committed by Duncan Ogilvie
parent ae050ea4a1
commit 97fa3c1408
No known key found for this signature in database
GPG Key ID: FC89E0AAA0C1AAD8
1 changed files with 16 additions and 2 deletions

View File

@ -232,10 +232,24 @@ void SymbolSourcePDB::enumSymbols(const CbEnumSymbol & cbEnum)
bool SymbolSourcePDB::findSourceLineInfo(duint rva, LineInfo & lineInfo)
{
if(isOpen() == false)
return false;
std::map<uint64_t, DiaLineInfo_t> lines;
if(!_pdb.getFunctionLineNumbers(rva, 1, 0, lines))
return false;
bool res = false;
bool requiresLock = isLoading();
if(requiresLock)
_lock.lock();
res = _pdb.getFunctionLineNumbers(rva, 1, 0, lines);
if(requiresLock)
_lock.unlock();
if(!res)
return res;
if(lines.empty())
return false;