all: fixing clang warnings

fopen->fopen_s, strdup -> _strdup, strncpy -> strncpy_s
__declspec(dllexport) -> __attribute__ ((visibility ("default")))
This commit is contained in:
Mira Grudzinska 2021-10-03 14:25:14 +02:00 committed by Hermet Park
parent d67517337c
commit e7c3a91aa1
4 changed files with 24 additions and 5 deletions

View file

@ -18,7 +18,7 @@
#include <string>
#ifdef TVG_BUILD
#ifdef _MSC_VER
#if defined(_MSC_VER) && !defined(__clang__)
#define TVG_EXPORT __declspec(dllexport)
#define TVG_DEPRECATED __declspec(deprecated)
#else

View file

@ -28,7 +28,7 @@
/************************************************************************/
//clz: count leading zeros
#ifdef _MSC_VER
#if defined(_MSC_VER) && !defined(__clang__)
#include <intrin.h>
static uint32_t __inline _clz(uint32_t value)
{

View file

@ -48,6 +48,11 @@ using namespace tvg;
#define TVG_FALLTHROUGH
#endif
#ifdef __clang__
#define strncpy strncpy_s
#define strdup _strdup
#endif
//TVG class identifier values
#define TVG_CLASS_ID_UNDEFINED 0
#define TVG_CLASS_ID_SHAPE 1
@ -68,4 +73,4 @@ enum class FileType { Tvg = 0, Svg, Raw, Png, Jpg, Unknown };
uint16_t THORVG_VERSION_NUMBER();
#endif //_TVG_COMMON_H_
#endif //_TVG_COMMON_H_

View file

@ -31,6 +31,20 @@
#include <alloca.h>
#endif
static FILE* _fopen(const char* filename, const char* mode)
{
#ifdef __clang__
FILE *fp;
auto err = fopen_s(&fp, filename, mode);
if (err != 0) return nullptr;
return fp;
#else
auto fp = fopen(filename, mode);
if (!fp) return nullptr;
return fp;
#endif
}
#define SIZE(A) sizeof(A)
/************************************************************************/
@ -181,7 +195,7 @@ bool TvgSaver::saveEncoding(const std::string& path)
memcpy(uncompressed, &compressedSizeBits, TVG_HEADER_COMPRESSED_SIZE_BITS);
//Good optimization, flush to file.
auto fp = fopen(path.c_str(), "w+");
auto fp = _fopen(path.c_str(), "w+");
if (!fp) goto fail;
//write header
@ -204,7 +218,7 @@ fail:
bool TvgSaver::flushTo(const std::string& path)
{
auto fp = fopen(path.c_str(), "w+");
auto fp = _fopen(path.c_str(), "w+");
if (!fp) return false;
if (fwrite(buffer.data, SIZE(uint8_t), buffer.count, fp) == 0) {