php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
gdhelpers.h
Go to the documentation of this file.
1#ifndef GDHELPERS_H
2#define GDHELPERS_H 1
3
4#include <sys/types.h>
5#include "php.h"
6
7/* TBB: strtok_r is not universal; provide an implementation of it. */
8
9extern char *gd_strtok_r(char *s, char *sep, char **state);
10
11/* These functions wrap memory management. gdFree is
12 in gd.h, where callers can utilize it to correctly
13 free memory allocated by these functions with the
14 right version of free(). */
15#define gdCalloc(nmemb, size) ecalloc(nmemb, size)
16#define gdMalloc(size) emalloc(size)
17#define gdRealloc(ptr, size) erealloc(ptr, size)
18#define gdEstrdup(ptr) estrdup(ptr)
19#define gdFree(ptr) efree(ptr)
20#define gdPMalloc(ptr) pemalloc(ptr, 1)
21#define gdPFree(ptr) pefree(ptr, 1)
22#define gdPEstrdup(ptr) pestrdup(ptr, 1)
23
24/* Returns nonzero if multiplying the two quantities will
25 result in integer overflow. Also returns nonzero if
26 either quantity is negative. By Phil Knirsch based on
27 netpbm fixes by Alan Cox. */
28
29int overflow2(int a, int b);
30
31#ifdef ZTS
32#define gdMutexDeclare(x) MUTEX_T x
33#define gdMutexSetup(x) x = tsrm_mutex_alloc()
34#define gdMutexShutdown(x) tsrm_mutex_free(x)
35#define gdMutexLock(x) tsrm_mutex_lock(x)
36#define gdMutexUnlock(x) tsrm_mutex_unlock(x)
37#else
38#define gdMutexDeclare(x)
39#define gdMutexSetup(x)
40#define gdMutexShutdown(x)
41#define gdMutexLock(x)
42#define gdMutexUnlock(x)
43#endif
44
45#define DPCM2DPI(dpcm) (unsigned int)((dpcm)*2.54 + 0.5)
46#define DPM2DPI(dpm) (unsigned int)((dpm)*0.0254 + 0.5)
47#define DPI2DPCM(dpi) (unsigned int)((dpi)/2.54 + 0.5)
48#define DPI2DPM(dpi) (unsigned int)((dpi)/0.0254 + 0.5)
49
50#endif /* GDHELPERS_H */
51
char s[4]
Definition cdf.c:77
char * gd_strtok_r(char *s, char *sep, char **state)
Definition gdhelpers.c:15
int overflow2(int a, int b)
Definition gd_compat.c:10
$obj a
Definition test.php:84