Skip to content

Commit 1cf39de

Browse files
committed
change structure
1 parent 553be2f commit 1cf39de

32 files changed

+4709
-11159
lines changed

ext/random/php_random.h

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -96,79 +96,80 @@ PHPAPI zend_long php_mt_rand_common(zend_long min, zend_long max);
9696
PHPAPI int php_random_bytes(void *bytes, size_t size, bool should_throw);
9797
PHPAPI int php_random_int(zend_long min, zend_long max, zend_long *result, bool should_throw);
9898

99-
typedef struct _php_random_numbergenerator_algo {
100-
const size_t generate_size;
99+
typedef struct _php_random_engine_algo {
101100
const size_t state_size;
101+
size_t (*size)(void *state);
102102
uint64_t (*generate)(void *state);
103103
void (*seed)(void *state, const uint64_t seed); /* nullable */
104104
int (*serialize)(void *state, HashTable *data); /* nullable */
105105
int (*unserialize)(void *state, HashTable *data); /* nullable */
106-
} php_random_numbergenerator_algo;
106+
} php_random_engine_algo;
107107

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);
110110

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);
112112

113113
extern zend_module_entry random_module_entry;
114114
# define phpext_random_ptr &random_module_entry
115115

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;
121121
extern PHPAPI zend_class_entry *random_ce_Random_Randomizer;
122122

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;
128128

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;
131131
void *state;
132132
zend_object std;
133-
} php_random_numbergenerator;
133+
} php_random_engine;
134134

135135
typedef struct _php_random_randomizer {
136-
const php_random_numbergenerator_algo *algo;
136+
const php_random_engine_algo *algo;
137137
void *state;
138138
bool self_allocate;
139139
zend_object std;
140140
} php_random_randomizer;
141141

142-
typedef struct _php_random_numbergenerator_state_xorshift128plus {
142+
typedef struct _php_random_engine_state_xorshift128plus {
143143
uint64_t s[2];
144-
} php_random_numbergenerator_state_xorshift128plus;
144+
} php_random_engine_state_xorshift128plus;
145145

146-
typedef struct _php_random_numbergenerator_state_mersennetwister {
146+
typedef struct _php_random_engine_state_mersennetwister {
147147
uint32_t s[MT_N];
148148
int cnt;
149149
zend_long mode;
150150
bool seeded;
151-
} php_random_numbergenerator_state_mersennetwister;
151+
} php_random_engine_state_mersennetwister;
152152

153-
typedef struct _php_random_numbergenerator_state_combinedlcg {
153+
typedef struct _php_random_engine_state_combinedlcg {
154154
int32_t s[2];
155155
bool seeded;
156-
} php_random_numbergenerator_state_combinedlcg;
156+
} php_random_engine_state_combinedlcg;
157157

158-
typedef struct _php_random_numbergenerator_state_user {
158+
typedef struct _php_random_engine_state_user {
159159
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;
162163

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));
165166
}
166167

167168
static inline php_random_randomizer *php_random_randomizer_from_obj(zend_object *obj) {
168169
return (php_random_randomizer *)((char *)(obj) - XtOffsetOf(php_random_randomizer, std));
169170
}
170171

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))
172173

173174
# define Z_RANDOM_RANDOMIZER_P(zval) php_random_randomizer_from_obj(Z_OBJ_P(zval))
174175

@@ -177,8 +178,8 @@ PHP_MSHUTDOWN_FUNCTION(random);
177178
PHP_RINIT_FUNCTION(random);
178179

179180
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 */
182183
int random_fd; /* random file discriptor */
183184
ZEND_END_MODULE_GLOBALS(random)
184185

0 commit comments

Comments
 (0)