Advertisement
Guest User

Untitled

a guest
Mar 4th, 2015
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.39 KB | None | 0 0
  1. diff -r 6a4172c43af9 core/sourcehook/sourcehook_hookmangen.h
  2. --- a/core/sourcehook/sourcehook_hookmangen.h   Tue Jan 20 16:48:32 2015 -0800
  3. +++ b/core/sourcehook/sourcehook_hookmangen.h   Wed Mar 04 09:43:40 2015 +0100
  4. @@ -64,6 +64,38 @@
  5.                 return m_pData;
  6.             }
  7.  
  8. +           jitoffs_t alloc(jitoffs_t size)
  9. +           {
  10. +               jitoffs_t start = m_Size;
  11. +               jitoffs_t newSize = m_Size + size;
  12. +               if (newSize > m_AllocatedSize)
  13. +               {
  14. +                   m_AllocatedSize = newSize > m_AllocatedSize*2 ? newSize : m_AllocatedSize*2;
  15. +                   if (m_AllocatedSize < 64)
  16. +                       m_AllocatedSize = 64;
  17. +                  
  18. +                   unsigned char *newBuf;
  19. +                   newBuf = reinterpret_cast<unsigned char*>(ms_Allocator.Alloc(m_AllocatedSize));
  20. +                   ms_Allocator.SetRW(newBuf);
  21. +                   if (!newBuf)
  22. +                   {
  23. +                       SH_ASSERT(0, ("bad_alloc: couldn't allocate 0x%08X bytes of memory\n", m_AllocatedSize));
  24. +                       return 0;
  25. +                   }
  26. +                   memset((void*)newBuf, 0xCC, m_AllocatedSize);           // :TODO: remove this !
  27. +                   memcpy((void*)newBuf, (const void*)m_pData, m_Size);
  28. +                   if (m_pData)
  29. +                   {
  30. +                       ms_Allocator.SetRE(reinterpret_cast<void*>(m_pData));
  31. +                       ms_Allocator.SetRW(newBuf);
  32. +                       ms_Allocator.Free(reinterpret_cast<void*>(m_pData));
  33. +                   }
  34. +                   m_pData = newBuf;
  35. +               }
  36. +               m_Size = newSize;
  37. +               return start;
  38. +           }
  39. +
  40.             template <class PT> void push(PT what)
  41.             {
  42.                 push((const unsigned char *)&what, sizeof(PT));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement