Compare commits

...

9 Commits

Author SHA1 Message Date
elasota
b9b7d91989 Reject zip archives with non-zero file count but empty central directory 2022-03-17 13:14:17 -04:00
Eric Lasota
3e13877788 Merge pull request #11 from ryandesign/stdlib
Include stdlib.h where its functions are used
2022-03-17 13:10:33 -04:00
Ryan Schmidt
53ff18d337 Include stdlib.h where its functions are used
Fixes build failure on OS X 10.10 and 10.11:

error: use of undeclared identifier 'free'
error: use of undeclared identifier 'malloc'
error: use of undeclared identifier 'qsort'
2022-03-17 02:54:37 -05:00
elasota
e33c01cc40 Change line endings to UNIX 2022-03-17 02:00:06 -04:00
Eric Lasota
0c891d3117 Merge pull request #10 from ryandesign/mac
Improve CMake macOS build
2022-03-17 01:58:13 -04:00
elasota
e4d2d9f9a4 Fix bad null compares 2022-03-17 01:50:19 -04:00
elasota
41c0312921 Add more nullptr_t operators 2022-03-17 01:48:16 -04:00
Ryan Schmidt
e78b01a5f3 Improve CMake macOS build
Now actually builds on macOS.

Closes #9
2022-03-17 00:39:55 -05:00
elasota
d470bb5eeb Add nullptr_t constructor to THandle 2022-03-16 21:24:47 -04:00
7 changed files with 341 additions and 278 deletions

View File

@@ -1,5 +1,7 @@
#include "GpThreadEvent_Cpp11.h"
#include <stdlib.h>
GpThreadEvent_Cpp11::GpThreadEvent_Cpp11(bool autoReset, bool startSignaled)
: m_flag(startSignaled)
, m_autoReset(autoReset)

View File

@@ -4,6 +4,7 @@
#include "GpApplicationName.h"
#include "GpIOStream.h"
#include <stdlib.h>
#include <time.h>
#include <cstring>

View File

@@ -20,7 +20,9 @@
#include "IGpVOSEventQueue.h"
#include <string>
#ifdef __MACOS__
#include "MacInit.h"
#endif
GpXGlobals g_gpXGlobals;

View File

@@ -45,6 +45,7 @@ add_library(PortabilityLayer STATIC
PortabilityLayer/BitmapImage.cpp
PortabilityLayer/ByteSwap.cpp
PortabilityLayer/CFileStream.cpp
PortabilityLayer/CompositeRenderedFont.cpp
PortabilityLayer/DeflateCodec.cpp
PortabilityLayer/DialogManager.cpp
PortabilityLayer/DisplayDeviceManager.cpp
@@ -240,7 +241,8 @@ target_include_directories(GpApp PRIVATE
target_link_libraries(GpApp PortabilityLayer)
if(CMAKE_HOST_UNIX)
add_executable(${EXECNAME}
set(EXEC_SOURCES )
list(APPEND EXEC_SOURCES
AerofoilPortable/GpSystemServices_POSIX.cpp
AerofoilPortable/GpThreadEvent_Cpp11.cpp
AerofoilPortable/GpAllocator_C.cpp
@@ -258,7 +260,15 @@ if(CMAKE_HOST_UNIX)
AerofoilX/GpFileSystem_X.cpp
)
target_include_directories(${EXECNAME} PRIVATE
set(EXEC_LIBS )
list(APPEND EXEC_LIBS
${SDL2_LIBRARIES}
GpApp
GpShell
)
set(EXEC_INC_DIRS )
list(APPEND EXEC_INC_DIRS
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Common>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/GpCommon>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/GpShell>
@@ -267,8 +277,22 @@ if(CMAKE_HOST_UNIX)
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/PortabilityLayer>
${SDL2_INCLUDE_DIRS}
)
if(PLATFORM STREQUAL "MAC")
list(APPEND EXEC_SOURCES
AerofoilMac/AerofoilMac/AerofoilApplication.mm
AerofoilMac/AerofoilMac/MacInit.mm
)
list(APPEND EXEC_INC_DIRS
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/AerofoilMac/AerofoilMac>
)
list(APPEND EXEC_LIBS
"-framework Cocoa"
)
endif(PLATFORM STREQUAL "MAC")
target_link_libraries(${EXECNAME} ${SDL2_LIBRARIES} GpApp GpShell)
add_executable(${EXECNAME} ${EXEC_SOURCES})
target_include_directories(${EXECNAME} PRIVATE ${EXEC_INC_DIRS})
target_link_libraries(${EXECNAME} ${EXEC_LIBS})
endif()

View File

@@ -336,7 +336,7 @@ void DisposCursors (void)
void IncrementCursor (void)
{
if (animCursorH == 0)
if (animCursorH == nullptr)
InitAnimatedCursor(nil);
if (animCursorH)
{
@@ -356,7 +356,7 @@ void IncrementCursor (void)
void DecrementCursor (void)
{
if (animCursorH == 0)
if (animCursorH == nullptr)
InitAnimatedCursor(nil);
if (animCursorH)
{

View File

@@ -1,5 +1,7 @@
#pragma once
#include <cstddef>
namespace PortabilityLayer
{
struct MMHandleBlock;
@@ -24,6 +26,7 @@ class THandle final : public THandleBase
{
public:
THandle();
THandle(std::nullptr_t);
THandle(T **hdl);
explicit THandle(PortabilityLayer::MMHandleBlock *hdl);
THandle(const THandle<T> &other);
@@ -46,6 +49,9 @@ public:
bool operator==(T** other) const;
bool operator!=(T** other) const;
bool operator==(std::nullptr_t) const;
bool operator!=(std::nullptr_t) const;
static THandle<T> NullPtr();
};
@@ -74,6 +80,12 @@ inline THandle<T>::THandle()
{
}
template<class T>
inline THandle<T>::THandle(std::nullptr_t)
: THandleBase(nullptr)
{
}
template<class T>
inline THandle<T>::THandle(T **hdl)
: THandleBase(reinterpret_cast<PortabilityLayer::MMHandleBlock*>(hdl))
@@ -107,17 +119,33 @@ inline bool THandle<T>::operator!=(const THandle<T> &other) const
template<class T>
inline bool THandle<T>::operator==(T** other) const
{
if (other == nullptr)
return m_hdl == nullptr;
return static_cast<void*>(&m_hdl->m_contents) == static_cast<void*>(other);
}
template<class T>
inline bool THandle<T>::operator!=(T** other) const
{
if (other == nullptr)
return m_hdl != nullptr;
return static_cast<void*>(&m_hdl->m_contents) != static_cast<void*>(other);
}
template<class T>
THandle<T> THandle<T>::NullPtr()
inline bool THandle<T>::operator==(std::nullptr_t) const
{
return m_hdl == nullptr;
}
template<class T>
inline bool THandle<T>::operator!=(std::nullptr_t) const
{
return m_hdl != nullptr;
}
template<class T>
inline THandle<T> THandle<T>::NullPtr()
{
return THandle<T>(static_cast<PortabilityLayer::MMHandleBlock *>(nullptr));
}

View File

@@ -10,6 +10,7 @@
#include "DeflateCodec.h"
#include <algorithm>
#include <stdlib.h>
namespace
{
@@ -323,6 +324,11 @@ namespace PortabilityLayer
return nullptr;
}
}
else
{
if (numFiles == 0)
return nullptr;
}
bool failed = false;