@@ -96,79 +96,80 @@ PHPAPI zend_long php_mt_rand_common(zend_long min, zend_long max);
96
96
PHPAPI int php_random_bytes (void * bytes , size_t size , bool should_throw );
97
97
PHPAPI int php_random_int (zend_long min , zend_long max , zend_long * result , bool should_throw );
98
98
99
- typedef struct _php_random_numbergenerator_algo {
100
- const size_t generate_size ;
99
+ typedef struct _php_random_engine_algo {
101
100
const size_t state_size ;
101
+ size_t (* size )(void * state );
102
102
uint64_t (* generate )(void * state );
103
103
void (* seed )(void * state , const uint64_t seed ); /* nullable */
104
104
int (* serialize )(void * state , HashTable * data ); /* nullable */
105
105
int (* unserialize )(void * state , HashTable * data ); /* nullable */
106
- } php_random_numbergenerator_algo ;
106
+ } php_random_engine_algo ;
107
107
108
- PHPAPI const php_random_numbergenerator_algo * php_random_numbergenerator_get_default_algo (void );
109
- PHPAPI void * php_random_numbergenerater_get_default_state (void );
108
+ PHPAPI const php_random_engine_algo * php_random_engine_get_default_algo (void );
109
+ PHPAPI void * php_random_engine_get_default_state (void );
110
110
111
- PHPAPI zend_long php_random_numbergenerator_range (const php_random_numbergenerator_algo * algo , void * state , zend_long min , zend_long max );
111
+ PHPAPI zend_long php_random_engine_range (const php_random_engine_algo * algo , void * state , zend_long min , zend_long max );
112
112
113
113
extern zend_module_entry random_module_entry ;
114
114
# define phpext_random_ptr &random_module_entry
115
115
116
- extern PHPAPI zend_class_entry * random_ce_Random_NumberGenerator ;
117
- extern PHPAPI zend_class_entry * random_ce_Random_NumberGenerator_XorShift128Plus ;
118
- extern PHPAPI zend_class_entry * random_ce_Random_NumberGenerator_MersenneTwister ;
119
- extern PHPAPI zend_class_entry * random_ce_Random_NumberGenerator_CombinedLCG ;
120
- extern PHPAPI zend_class_entry * random_ce_Random_NumberGenerator_Secure ;
116
+ extern PHPAPI zend_class_entry * random_ce_Random_Engine ;
117
+ extern PHPAPI zend_class_entry * random_ce_Random_Engine_XorShift128Plus ;
118
+ extern PHPAPI zend_class_entry * random_ce_Random_Engine_MersenneTwister ;
119
+ extern PHPAPI zend_class_entry * random_ce_Random_Engine_CombinedLCG ;
120
+ extern PHPAPI zend_class_entry * random_ce_Random_Engine_Secure ;
121
121
extern PHPAPI zend_class_entry * random_ce_Random_Randomizer ;
122
122
123
- extern const php_random_numbergenerator_algo php_random_numbergenerator_algo_xorshift128plus ;
124
- extern const php_random_numbergenerator_algo php_random_numbergenerator_algo_mersennetwister ;
125
- extern const php_random_numbergenerator_algo php_random_numbergenerator_algo_combinedlcg ;
126
- extern const php_random_numbergenerator_algo php_random_numbergenerator_algo_secure ;
127
- extern const php_random_numbergenerator_algo php_random_numbergenerator_algo_user ;
123
+ extern const php_random_engine_algo php_random_engine_algo_xorshift128plus ;
124
+ extern const php_random_engine_algo php_random_engine_algo_mersennetwister ;
125
+ extern const php_random_engine_algo php_random_engine_algo_combinedlcg ;
126
+ extern const php_random_engine_algo php_random_engine_algo_secure ;
127
+ extern const php_random_engine_algo php_random_engine_algo_user ;
128
128
129
- typedef struct _php_random_numbergenerator {
130
- const php_random_numbergenerator_algo * algo ;
129
+ typedef struct _php_random_engine {
130
+ const php_random_engine_algo * algo ;
131
131
void * state ;
132
132
zend_object std ;
133
- } php_random_numbergenerator ;
133
+ } php_random_engine ;
134
134
135
135
typedef struct _php_random_randomizer {
136
- const php_random_numbergenerator_algo * algo ;
136
+ const php_random_engine_algo * algo ;
137
137
void * state ;
138
138
bool self_allocate ;
139
139
zend_object std ;
140
140
} php_random_randomizer ;
141
141
142
- typedef struct _php_random_numbergenerator_state_xorshift128plus {
142
+ typedef struct _php_random_engine_state_xorshift128plus {
143
143
uint64_t s [2 ];
144
- } php_random_numbergenerator_state_xorshift128plus ;
144
+ } php_random_engine_state_xorshift128plus ;
145
145
146
- typedef struct _php_random_numbergenerator_state_mersennetwister {
146
+ typedef struct _php_random_engine_state_mersennetwister {
147
147
uint32_t s [MT_N ];
148
148
int cnt ;
149
149
zend_long mode ;
150
150
bool seeded ;
151
- } php_random_numbergenerator_state_mersennetwister ;
151
+ } php_random_engine_state_mersennetwister ;
152
152
153
- typedef struct _php_random_numbergenerator_state_combinedlcg {
153
+ typedef struct _php_random_engine_state_combinedlcg {
154
154
int32_t s [2 ];
155
155
bool seeded ;
156
- } php_random_numbergenerator_state_combinedlcg ;
156
+ } php_random_engine_state_combinedlcg ;
157
157
158
- typedef struct _php_random_numbergenerator_state_user {
158
+ typedef struct _php_random_engine_state_user {
159
159
zend_object * object ;
160
- zend_function * method ;
161
- } php_random_numbergenerator_state_user ;
160
+ zend_function * size_method ;
161
+ zend_function * generate_method ;
162
+ } php_random_engine_state_user ;
162
163
163
- static inline php_random_numbergenerator * php_random_numbergenerator_from_obj (zend_object * obj ) {
164
- return (php_random_numbergenerator * )((char * )(obj ) - XtOffsetOf (php_random_numbergenerator , std ));
164
+ static inline php_random_engine * php_random_engine_from_obj (zend_object * obj ) {
165
+ return (php_random_engine * )((char * )(obj ) - XtOffsetOf (php_random_engine , std ));
165
166
}
166
167
167
168
static inline php_random_randomizer * php_random_randomizer_from_obj (zend_object * obj ) {
168
169
return (php_random_randomizer * )((char * )(obj ) - XtOffsetOf (php_random_randomizer , std ));
169
170
}
170
171
171
- # define Z_RANDOM_NUMBERGENERATOR_P (zval ) php_random_numbergenerator_from_obj (Z_OBJ_P(zval))
172
+ # define Z_RANDOM_ENGINE_P (zval ) php_random_engine_from_obj (Z_OBJ_P(zval))
172
173
173
174
# define Z_RANDOM_RANDOMIZER_P (zval ) php_random_randomizer_from_obj(Z_OBJ_P(zval))
174
175
@@ -177,8 +178,8 @@ PHP_MSHUTDOWN_FUNCTION(random);
177
178
PHP_RINIT_FUNCTION (random );
178
179
179
180
ZEND_BEGIN_MODULE_GLOBALS (random )
180
- php_random_numbergenerator_state_combinedlcg clcg ; /* Combined LCG global state */
181
- php_random_numbergenerator_state_mersennetwister mt ; /* MT global state */
181
+ php_random_engine_state_combinedlcg clcg ; /* Combined LCG global state */
182
+ php_random_engine_state_mersennetwister mt ; /* MT global state */
182
183
int random_fd ; /* random file discriptor */
183
184
ZEND_END_MODULE_GLOBALS (random )
184
185
0 commit comments