@@ -349,26 +349,21 @@ class MemoryReader {
349
349
std::size_t integerSize) {
350
350
assert ((integerSize == 4 || integerSize == 8 ) &&
351
351
" Only 32 or 64 bit architectures are supported!" );
352
- auto Buf = std::malloc (integerSize);
353
- if (!Buf)
354
- return false ;
355
-
356
- // Free Buf when this function return.
357
- ReadBytesResult Result (
358
- Buf, [](const void *ptr) { free (const_cast <void *>(ptr)); });
359
- if (!readBytes (address, reinterpret_cast <uint8_t *>(Buf), integerSize))
360
- return false ;
361
-
362
- if (integerSize == 4 )
363
- out = RemoteAddress (*reinterpret_cast <uint32_t *>(Buf),
364
- address.getAddressSpace ());
365
- else if (integerSize == 8 )
366
- out = RemoteAddress (*reinterpret_cast <uint64_t *>(Buf),
367
- address.getAddressSpace ());
368
- else
369
- return false ;
370
-
371
- return true ;
352
+ if (integerSize == 4 ) {
353
+ uint32_t buf;
354
+ if (!readBytes (address, reinterpret_cast <uint8_t *>(&buf), integerSize))
355
+ return false ;
356
+ out = RemoteAddress (buf, address.getAddressSpace ());
357
+ return true ;
358
+ }
359
+ if (integerSize == 8 ) {
360
+ uint64_t buf;
361
+ if (!readBytes (address, reinterpret_cast <uint8_t *>(&buf), integerSize))
362
+ return false ;
363
+ out = RemoteAddress (buf, address.getAddressSpace ());
364
+ return true ;
365
+ }
366
+ return false ;
372
367
}
373
368
};
374
369
0 commit comments