1
0
Fork 0

Small BpEnumAll optimization

This commit is contained in:
Nukem 2015-03-18 17:00:30 -04:00
parent 94ec4a822f
commit 003babb4bb
2 changed files with 12 additions and 11 deletions

View File

@ -85,6 +85,7 @@ void BookmarkDelRange(uint Start, uint End)
continue;
}
// [Start, End)
if(itr->second.addr >= Start && itr->second.addr < End)
itr = bookmarks.erase(itr);
else
@ -103,15 +104,15 @@ void BookmarkCacheSave(JSON Root)
// Save to the JSON root
for(auto & itr : bookmarks)
{
JSON curjsonbookmark = json_object();
JSON currentBookmark = json_object();
json_object_set_new(curjsonbookmark, "module", json_string(itr.second.mod));
json_object_set_new(curjsonbookmark, "address", json_hex(itr.second.addr));
json_object_set_new(currentBookmark, "module", json_string(itr.second.mod));
json_object_set_new(currentBookmark, "address", json_hex(itr.second.addr));
if(itr.second.manual)
json_array_append_new(jsonBookmarks, curjsonbookmark);
json_array_append_new(jsonBookmarks, currentBookmark);
else
json_array_append_new(jsonAutoBookmarks, curjsonbookmark);
json_array_append_new(jsonAutoBookmarks, currentBookmark);
}
if(json_array_size(jsonBookmarks))

View File

@ -101,7 +101,7 @@ bool BpGet(uint Address, BP_TYPE Type, const char* Name, BREAKPOINT* Bp)
// Name is optional
if(!Name || Name[0] == '\0')
{
// Perform a lookup by an address only
// Perform a lookup by address only
BREAKPOINT* bpInfo = BpInfoFromAddr(Type, Address);
if(!bpInfo)
@ -221,17 +221,17 @@ bool BpEnumAll(BPENUMCALLBACK EnumCallback, const char* Module)
for(auto & i : breakpoints)
{
BREAKPOINT bpInfo = i.second;
bpInfo.addr += ModBaseFromName(bpInfo.mod);
bpInfo.active = memisvalidreadptr(fdProcessInfo->hProcess, bpInfo.addr);
// If a module name was sent, check it
if(Module && Module[0] != '\0')
{
if(strcmp(bpInfo.mod, Module) != 0)
if(strcmp(i.second.mod, Module) != 0)
continue;
}
BREAKPOINT bpInfo = i.second;
bpInfo.addr += ModBaseFromName(bpInfo.mod);
bpInfo.active = memisvalidreadptr(fdProcessInfo->hProcess, bpInfo.addr);
// Execute the callback
if(!EnumCallback(&bpInfo))
callbackStatus = false;