summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/gd-2.0.35/gdhelpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/gd-2.0.35/gdhelpers.h')
-rw-r--r--Build/source/libs/gd/gd-2.0.35/gdhelpers.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/Build/source/libs/gd/gd-2.0.35/gdhelpers.h b/Build/source/libs/gd/gd-2.0.35/gdhelpers.h
new file mode 100644
index 00000000000..0c45ad35b53
--- /dev/null
+++ b/Build/source/libs/gd/gd-2.0.35/gdhelpers.h
@@ -0,0 +1,61 @@
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef GDHELPERS_H
+#define GDHELPERS_H 1
+
+/* sys/types.h is needed for size_t on Sparc-SunOS-4.1 */
+#include <sys/types.h>
+
+/* TBB: strtok_r is not universal; provide an implementation of it. */
+
+ char * gd_strtok_r (char *s, char *sep, char **state);
+
+/* These functions wrap memory management. gdFree is
+ in gd.h, where callers can utilize it to correctly
+ free memory allocated by these functions with the
+ right version of free(). */
+void *gdCalloc (size_t nmemb, size_t size);
+void *gdMalloc (size_t size);
+void *gdRealloc (void *ptr, size_t size);
+
+/* Returns nonzero if multiplying the two quantities will
+ result in integer overflow. Also returns nonzero if
+ either quantity is negative. By Phil Knirsch based on
+ netpbm fixes by Alan Cox. */
+
+int overflow2(int a, int b);
+
+/* 2.0.16: portable mutex support for thread safety. */
+
+#ifdef WIN32
+/* 2.0.18: must include windows.h to get CRITICAL_SECTION. */
+#include <windows.h>
+#define gdMutexDeclare(x) CRITICAL_SECTION x
+#define gdMutexSetup(x) InitializeCriticalSection(&x)
+#define gdMutexShutdown(x) DeleteCriticalSection(&x)
+#define gdMutexLock(x) EnterCriticalSection(&x)
+#define gdMutexUnlock(x) LeaveCriticalSection(&x)
+#else
+#ifdef HAVE_PTHREAD
+#include <pthread.h>
+#define gdMutexDeclare(x) pthread_mutex_t x
+#define gdMutexSetup(x) pthread_mutex_init(&x, 0)
+#define gdMutexShutdown(x) pthread_mutex_destroy(&x)
+#define gdMutexLock(x) pthread_mutex_lock(&x)
+#define gdMutexUnlock(x) pthread_mutex_unlock(&x)
+#else
+#define gdMutexDeclare(x)
+#define gdMutexSetup(x)
+#define gdMutexShutdown(x)
+#define gdMutexLock(x)
+#define gdMutexUnlock(x)
+#endif /* HAVE_PTHREAD */
+#endif /* WIN32 */
+
+#endif /* GDHELPERS_H */
+
+#ifdef __cplusplus
+}
+#endif