diff options
author | Lynx Linden <lynx@lindenlab.com> | 2010-06-15 17:28:17 +0100 |
---|---|---|
committer | Lynx Linden <lynx@lindenlab.com> | 2010-06-15 17:28:17 +0100 |
commit | b2b6d52807f90479216f28228711c4af83a35170 (patch) | |
tree | f6f4a0372f67529e6b502abd805acc1334b4668e | |
parent | fce2653f6b5e8ca3509d13e3449b1fdd2f5ff826 (diff) |
EXT-7851 FIXED Cleaned up code to avoid confusion.
The mTmpWriteBuffer member variable was never actually being allocated
because it was being shadowed by a local variable. This is why the
code never crashed. I've removed the member variable as it was clearly
never used and really confused the code.
-rw-r--r-- | indra/llimage/llimagepng.cpp | 21 | ||||
-rw-r--r-- | indra/llimage/llimagepng.h | 3 |
2 files changed, 6 insertions, 18 deletions
diff --git a/indra/llimage/llimagepng.cpp b/indra/llimage/llimagepng.cpp index a6ab246a2c..018ce993b5 100644 --- a/indra/llimage/llimagepng.cpp +++ b/indra/llimage/llimagepng.cpp @@ -42,17 +42,12 @@ // LLImagePNG // --------------------------------------------------------------------------- LLImagePNG::LLImagePNG() - : LLImageFormatted(IMG_CODEC_PNG), - mTmpWriteBuffer(NULL) + : LLImageFormatted(IMG_CODEC_PNG) { } LLImagePNG::~LLImagePNG() { - if (mTmpWriteBuffer) - { - delete[] mTmpWriteBuffer; - } } // Virtual @@ -123,28 +118,24 @@ BOOL LLImagePNG::encode(const LLImageRaw* raw_image, F32 encode_time) // Temporary buffer to hold the encoded image. Note: the final image // size should be much smaller due to compression. - if (mTmpWriteBuffer) - { - delete[] mTmpWriteBuffer; - } U32 bufferSize = getWidth() * getHeight() * getComponents() + 1024; - U8* mTmpWriteBuffer = new U8[ bufferSize ]; + U8* tmpWriteBuffer = new U8[ bufferSize ]; // Delegate actual encoding work to wrapper LLPngWrapper pngWrapper; - if (! pngWrapper.writePng(raw_image, mTmpWriteBuffer)) + if (! pngWrapper.writePng(raw_image, tmpWriteBuffer)) { setLastError(pngWrapper.getErrorMessage()); - delete[] mTmpWriteBuffer; + delete[] tmpWriteBuffer; return FALSE; } // Resize internal buffer and copy from temp U32 encodedSize = pngWrapper.getFinalSize(); allocateData(encodedSize); - memcpy(getData(), mTmpWriteBuffer, encodedSize); + memcpy(getData(), tmpWriteBuffer, encodedSize); - delete[] mTmpWriteBuffer; + delete[] tmpWriteBuffer; return TRUE; } diff --git a/indra/llimage/llimagepng.h b/indra/llimage/llimagepng.h index 083dda73b9..4d6e2ee70a 100644 --- a/indra/llimage/llimagepng.h +++ b/indra/llimage/llimagepng.h @@ -47,9 +47,6 @@ public: /*virtual*/ BOOL updateData(); /*virtual*/ BOOL decode(LLImageRaw* raw_image, F32 decode_time); /*virtual*/ BOOL encode(const LLImageRaw* raw_image, F32 encode_time); - -private: - U8* mTmpWriteBuffer; }; #endif |