@@ -124,34 +124,30 @@ extern zend_module_entry random_module_entry;
124124# define phpext_random_ptr &random_module_entry
125125
126126extern PHPAPI zend_class_entry * random_ce_Random_Engine ;
127- extern PHPAPI zend_class_entry * random_ce_Random_Engine_XorShift128Plus ;
128- extern PHPAPI zend_class_entry * random_ce_Random_Engine_MersenneTwister ;
129127extern PHPAPI zend_class_entry * random_ce_Random_Engine_CombinedLCG ;
128+ extern PHPAPI zend_class_entry * random_ce_Random_Engine_MersenneTwister ;
130129extern PHPAPI zend_class_entry * random_ce_Random_Engine_Secure ;
130+ extern PHPAPI zend_class_entry * random_ce_Random_Engine_XorShift128Plus ;
131+ extern PHPAPI zend_class_entry * random_ce_Random_Engine_Xoshiro256StarStar ;
131132extern PHPAPI zend_class_entry * random_ce_Random_Randomizer ;
132133
133- extern const php_random_engine_algo php_random_engine_algo_xorshift128plus ;
134- extern const php_random_engine_algo php_random_engine_algo_mersennetwister ;
135134extern const php_random_engine_algo php_random_engine_algo_combinedlcg ;
135+ extern const php_random_engine_algo php_random_engine_algo_mersennetwister ;
136136extern const php_random_engine_algo php_random_engine_algo_secure ;
137137extern const php_random_engine_algo php_random_engine_algo_user ;
138+ extern const php_random_engine_algo php_random_engine_algo_xorshift128plus ;
139+ extern const php_random_engine_algo php_random_engine_algo_xoshiro256starstar ;
138140
139141typedef struct _php_random_engine {
140142 const php_random_engine_algo * algo ;
141143 void * state ;
142144 zend_object std ;
143145} php_random_engine ;
144146
145- typedef struct _php_random_randomizer {
146- const php_random_engine_algo * algo ;
147- void * state ;
148- bool self_allocate ;
149- zend_object std ;
150- } php_random_randomizer ;
151-
152- typedef struct _php_random_engine_state_xorshift128plus {
153- uint64_t s [2 ];
154- } php_random_engine_state_xorshift128plus ;
147+ typedef struct _php_random_engine_state_combinedlcg {
148+ int32_t s [2 ];
149+ bool seeded ;
150+ } php_random_engine_state_combinedlcg ;
155151
156152typedef struct _php_random_engine_state_mersennetwister {
157153 uint32_t s [MT_N ];
@@ -160,18 +156,28 @@ typedef struct _php_random_engine_state_mersennetwister {
160156 bool seeded ;
161157} php_random_engine_state_mersennetwister ;
162158
163- typedef struct _php_random_engine_state_combinedlcg {
164- int32_t s [2 ];
165- bool seeded ;
166- } php_random_engine_state_combinedlcg ;
167-
168159typedef struct _php_random_engine_state_user {
169160 zend_object * object ;
170161 zend_function * size_method ;
171162 zend_function * generate_method ;
172163 size_t last_generate_size ;
173164} php_random_engine_state_user ;
174165
166+ typedef struct _php_random_engine_state_xorshift128plus {
167+ uint64_t s [2 ];
168+ } php_random_engine_state_xorshift128plus ;
169+
170+ typedef struct _php_random_engine_state_xoshiro256starstar {
171+ uint64_t s [4 ];
172+ } php_random_engine_state_xoshiro256starstar ;
173+
174+ typedef struct _php_random_randomizer {
175+ const php_random_engine_algo * algo ;
176+ void * state ;
177+ bool self_allocate ;
178+ zend_object std ;
179+ } php_random_randomizer ;
180+
175181static inline php_random_engine * php_random_engine_from_obj (zend_object * obj ) {
176182 return (php_random_engine * )((char * )(obj ) - XtOffsetOf (php_random_engine , std ));
177183}
0 commit comments