Source

gd-libgd / src / gdhelpers.h

pierre 46da631 



pierre 2399023 
pierre 22d55c5 

pierrejoye e20413b 
mloskot 6ec9740 
pierre b623f93 
mloskot 6ec9740 


pierre b623f93 
pierrejoye e20413b 
pierre 22d55c5 
pierrejoye e20413b 
pierre 22d55c5 
pierrejoye e20413b 



Pierre Joye 84d2371 


Ondřej Surý f0ddf2e 

Pierre Joye 84d2371 
pierre 22d55c5 
pierrejoye e20413b 



pierre 46da631 
pierrejoye e20413b 
pierre 46da631 
pierrejoye e20413b 
pierre b14040d 
Ondřej Surý c60d9fe 
pierrejoye e20413b 
Ondřej Surý c60d9fe 












pierre b14040d 
Ondřej Surý c60d9fe 





pierre b14040d 
tabe f40454c 




pierre 22d55c5 
pierre 46da631 


#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 */
#ifndef _WIN32_WCE
#include <sys/types.h>
#else
#include <stdlib.h>
#endif /* _WIN32_WCE */

	/* 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);
	/* The extended version of gdReallocEx will free *ptr if the
	 * realloc fails */
	void *gdReallocEx (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. */

#if defined(_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)
#elif defined(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 /* _WIN32 || HAVE_PTHREAD */

#define DPCM2DPI(dpcm) (unsigned int)((dpcm)*2.54 + 0.5)
#define DPM2DPI(dpm)   (unsigned int)((dpm)*0.0254 + 0.5)
#define DPI2DPCM(dpi)  (unsigned int)((dpi)/2.54 + 0.5)
#define DPI2DPM(dpi)   (unsigned int)((dpi)/0.0254 + 0.5)

#endif /* GDHELPERS_H */

#ifdef __cplusplus
}
#endif
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.