diff --git a/PKGBUILD b/PKGBUILD index 5172e21..9290e77 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,7 +1,7 @@ # PKGBUILD for libAthena _pkgname=libathena pkgname=$_pkgname-git -pkgver=1.1.0.17.gfb722a9 +pkgver=1.1.0.34.g7b1b027 pkgrel=1 pkgdesc="Basic cross platform IO library" arch=('i686' 'x86_64') diff --git a/src/Athena/FileReader.cpp b/src/Athena/FileReader.cpp index 55cb87d..1e8fbb0 100644 --- a/src/Athena/FileReader.cpp +++ b/src/Athena/FileReader.cpp @@ -303,11 +303,11 @@ bool FileReader::readBool() atVec3f FileReader::readVec3f() { + atVec3f val = {}; if (!isOpen()) - THROW_INVALID_OPERATION_EXCEPTION_RETURN({}, "File not open for reading"); + THROW_INVALID_OPERATION_EXCEPTION_RETURN(val, "File not open for reading"); m_bitValid = false; - atVec3f val = {}; fread(&val, 1, 12, m_fileHandle); if ((!utility::isSystemBigEndian() && isBigEndian()) || (utility::isSystemBigEndian() && isLittleEndian())) @@ -322,11 +322,11 @@ atVec3f FileReader::readVec3f() atVec4f FileReader::readVec4f() { + atVec4f val = {}; if (!isOpen()) - THROW_INVALID_OPERATION_EXCEPTION_RETURN({}, "File not open for reading"); + THROW_INVALID_OPERATION_EXCEPTION_RETURN(val, "File not open for reading"); m_bitValid = false; - atVec4f val = {}; fread(&val, 1, 16, m_fileHandle); if ((!utility::isSystemBigEndian() && isBigEndian()) || (utility::isSystemBigEndian() && isLittleEndian())) diff --git a/src/Athena/MemoryReader.cpp b/src/Athena/MemoryReader.cpp index f9c9792..40dd369 100644 --- a/src/Athena/MemoryReader.cpp +++ b/src/Athena/MemoryReader.cpp @@ -431,7 +431,10 @@ atVec3f MemoryReader::readVec3f() } if (m_position + 12 > m_length) - THROW_IO_EXCEPTION_RETURN({}, "Position %0.8X outside stream bounds ", m_position); + { + atVec3f zero = {}; + THROW_IO_EXCEPTION_RETURN(zero, "Position %0.8X outside stream bounds ", m_position); + } float* source = (float*)(m_data + m_position); atVec3f result = {source[0], source[1], source[2]}; @@ -464,7 +467,10 @@ atVec4f MemoryReader::readVec4f() } if (m_position + 16 > m_length) - THROW_IO_EXCEPTION_RETURN({}, "Position %0.8X outside stream bounds ", m_position); + { + atVec4f zero = {}; + THROW_IO_EXCEPTION_RETURN(zero, "Position %0.8X outside stream bounds ", m_position); + } float* source = (float*)(m_data + m_position); atVec4f result = {source[0], source[1], source[2], source[3]};