From 819bb4cf0c303cc5cee4e219788b7ff0f270e128 Mon Sep 17 00:00:00 2001 From: badlogic Date: Fri, 5 Aug 2016 10:09:07 +0200 Subject: [PATCH] [cocos2d-x] Closes #650, don't deep copy data read from file on cocos2d-x 3.12+ --- spine-cocos2dx/src/spine/spine-cocos2dx.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spine-cocos2dx/src/spine/spine-cocos2dx.cpp b/spine-cocos2dx/src/spine/spine-cocos2dx.cpp index 07d5284f7..da7d3fa6d 100644 --- a/spine-cocos2dx/src/spine/spine-cocos2dx.cpp +++ b/spine-cocos2dx/src/spine/spine-cocos2dx.cpp @@ -82,8 +82,15 @@ char* _spUtil_readFile (const char* path, int* length) { if (data.isNull()) return 0; // avoid buffer overflow (int is shorter than ssize_t in certain platforms) +#if COCOS2D_VERSION >= 0x00031200 ssize_t tmpLen; char *ret = (char*)data.takeBuffer(&tmpLen); *length = static_cast(tmpLen); return ret; +#else + *length = static_cast(data.getSize()); + char* bytes = MALLOC(char, *length); + memcpy(bytes, data.getBytes(), *length); + return bytes; +#endif }