1
+
2
+ /** {{{ Mix_Chunk */
3
+ static zend_class_entry * mix_chunk_ce = NULL ;
4
+ static zend_object_handlers php_mix_chunk_object_handlers ;
5
+
6
+ typedef struct _php_mix_chunk_object {
7
+ Mix_Chunk * mix_chunk ;
8
+ zend_object std ;
9
+ } php_mix_chunk_object ;
10
+
11
+ static php_mix_chunk_object * php_mix_chunk_object_from_zend_object (zend_object * zobj )
12
+ {
13
+ return ((php_mix_chunk_object * )(zobj + 1 )) - 1 ;
14
+ }
15
+
16
+ static zend_object * php_mix_chunk_object_to_zend_object (php_mix_chunk_object * obj )
17
+ {
18
+ return ((zend_object * )(obj + 1 )) - 1 ;
19
+ }
20
+
21
+ Mix_Chunk * php_mix_chunk_from_zval_p (zval * zp )
22
+ {
23
+ return php_mix_chunk_object_from_zend_object (Z_OBJ_P (zp ))-> mix_chunk ;
24
+ }
25
+
26
+
27
+ static inline void mix_chunk_to_zval (Mix_Chunk * mix_chunk , zval * zp )
28
+ {
29
+ object_init_ex (zp , mix_chunk_ce );
30
+ php_mix_chunk_object * php_mix_chunk = php_mix_chunk_object_from_zend_object (Z_OBJ_P (zp ));
31
+ php_mix_chunk -> mix_chunkc = mix_chunk ;
32
+ }
33
+
34
+ static zend_object * php_mix_chunk_object_create (zend_class_entry * ce )
35
+ {
36
+ php_mix_chunk_object * obj = zend_object_alloc (sizeof (php_mix_chunk_object ), ce );
37
+ zend_object * zobj = php_mix_chunk_object_to_zend_object (obj );
38
+
39
+ obj -> mix_chunk = NULL ;
40
+ zend_object_std_init (zobj , ce );
41
+ object_properties_init (zobj , ce );
42
+ zobj -> handlers = & php_mix_chunk_object_handlers ;
43
+
44
+ return zobj ;
45
+ }
46
+
47
+ static void php_mix_chunk_object_free (zend_object * zobj )
48
+ {
49
+ php_mix_chunk_object * obj = php_mix_chunk_object_from_zend_object (zobj );
50
+
51
+ if (obj -> mix_chunk ) {
52
+ // @todo implement free es. TTF_CloseFont(obj->mix_chunk);
53
+ obj -> mix_chunk = NULL ;
54
+ }
55
+
56
+ zend_object_std_dtor (zobj );
57
+ }
58
+
59
+ static zend_function * php_mix_chunk_object_get_constructor (zend_object * object )
60
+ {
61
+ zend_throw_error (NULL , "You cannot initialize a Mix_Chunk object except through helper functions" );
62
+ return NULL ;
63
+ }
64
+
65
+ static void php_mix_chunk_minit_helper (void )
66
+ {
67
+ mix_chunk_ce = register_class_Mix_Chunk ();
68
+ mix_chunk_ce -> create_object = php_mix_chunk_object_create ;
69
+
70
+ memcpy (& php_mix_chunk_object_handlers , & std_object_handlers , sizeof (zend_object_handlers ));
71
+ php_mix_chunk_object_handlers .clone_obj = NULL ;
72
+ php_mix_chunk_object_handlers .free_obj = php_mix_chunk_object_free ;
73
+ php_mix_chunk_object_handlers .get_constructor = php_mix_chunk_object_get_constructor ;
74
+ php_mix_chunk_object_handlers .offset = XtOffsetOf (php_mix_chunk_object , std );
75
+ }
76
+
77
+ /** }}} */
0 commit comments