File: variant.h

package info (click to toggle)
php4 6%3A4.4.4-8%2Betch6
  • links: PTS
  • area: main
  • in suites: etch
  • size: 35,068 kB
  • ctags: 39,148
  • sloc: ansic: 340,486; php: 34,786; cpp: 10,150; sh: 9,010; lex: 2,180; yacc: 1,712; xml: 1,335; makefile: 559; awk: 466; java: 455; perl: 154
file content (37 lines) | stat: -rw-r--r-- 896 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef VARIANT_H
#define VARIANT_H

#if PHP_WIN32

#define ALLOC_VARIANT(v)	(v) = (VARIANT *) emalloc(sizeof(VARIANT));					\
							VariantInit(v);

#define FREE_VARIANT(v)		VariantClear(v);											\
							efree(v);


#define IS_VARIANT			php_VARIANT_get_le_variant()

#define ZVAL_VARIANT(z, v)		if (V_VT(v) == VT_DISPATCH) { \
									if (V_DISPATCH(v)) { \
										comval *obj; \
										ALLOC_COM(obj); \
										php_COM_set(obj, &V_DISPATCH(v), TRUE TSRMLS_CC); \
										ZVAL_COM((z), obj); \
										efree(v); \
									} else { \
										ZVAL_NULL(z); \
									} \
								} else { \
									php_variant_to_pval((v), (z), codepage TSRMLS_CC); \
									FREE_VARIANT(v); \
								}

#define RETVAL_VARIANT(v)	ZVAL_VARIANT(return_value, (v));
#define RETURN_VARIANT(v)	RETVAL_VARIANT(v)											\
							return;


#endif  /* PHP_WIN32 */

#endif  /* VARIANT_H */