@@ -349,26 +349,21 @@ class MemoryReader {
349349 std::size_t integerSize) {
350350 assert ((integerSize == 4 || integerSize == 8 ) &&
351351 " 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 ;
372367 }
373368};
374369
0 commit comments