Merge pull request #5256 from chfast/memory-fixes

Small memory fixes
This commit is contained in:
Ted John 2017-02-27 17:24:08 +00:00 committed by GitHub
commit 4442b936de
2 changed files with 9 additions and 10 deletions

View File

@ -185,7 +185,6 @@ class SoftwareDrawingEngine final : public IDrawingEngine
private:
bool _hardwareDisplay;
SDL_Window * _window = nullptr;
SDL_Surface * _surface = nullptr;
SDL_Surface * _RGBASurface = nullptr;
SDL_Palette * _palette = nullptr;
@ -244,7 +243,11 @@ public:
void Initialise(SDL_Window * window) override
{
_window = window;
if (_hardwareDisplay)
{
// Try to create the accelerated renderer.
_sdlRenderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
}
}
void Resize(uint32 width, uint32 height) override
@ -254,15 +257,11 @@ public:
SDL_FreePalette(_palette);
SDL_DestroyTexture(_screenTexture);
SDL_FreeFormat(_screenTextureFormat);
SDL_DestroyRenderer(_sdlRenderer);
if (_hardwareDisplay)
if (_sdlRenderer != nullptr)
{
_sdlRenderer = SDL_CreateRenderer(_window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
SDL_RendererInfo rendererInfo;
SDL_GetRendererInfo(_sdlRenderer, &rendererInfo);
uint32 pixelFormat = SDL_PIXELFORMAT_UNKNOWN;
for (uint32 i = 0; i < rendererInfo.num_texture_formats; i++)
{
@ -310,7 +309,7 @@ public:
void SetPalette(SDL_Color * palette) override
{
if (_hardwareDisplay)
if (_sdlRenderer != nullptr)
{
if (_screenTextureFormat != nullptr)
{
@ -416,7 +415,7 @@ public:
rct2_draw(&_bitsDPI);
}
if (_hardwareDisplay)
if (_sdlRenderer != nullptr)
{
DisplayViaTexture();
}

View File

@ -67,7 +67,7 @@ std::shared_ptr<SawyerChunk> SawyerChunkReader::ReadChunk()
case CHUNK_ENCODING_RLECOMPRESSED:
case CHUNK_ENCODING_ROTATE:
{
std::unique_ptr<uint8> compressedData = std::unique_ptr<uint8>(Memory::Allocate<uint8>(header.length));
std::unique_ptr<uint8[]> compressedData(new uint8[header.length]);
if (_stream->TryRead(compressedData.get(), header.length) != header.length)
{
throw SawyerChunkException("Corrupt chunk size.");