refactor code

This commit is contained in:
CismonX 2019-06-09 22:47:33 +08:00
parent b7726e07d1
commit 20e249a4dd
5 changed files with 14 additions and 12 deletions

View File

@ -50,12 +50,12 @@
PHP_ARMA_COMPLEX_OPERATOR_EX(double, func) \
PHP_ARMA_OPERATOR_END()
#define PHP_ARMA_COMPLEX_OPERATOR_ASSIGN_EX(type, func) \
PHP_ARMA_OPERATOR_ASSIGN_EX(complex<type>, func)
#define PHP_ARMA_COMPLEX_ASSIGN_OPERATOR_EX(type, func) \
PHP_ARMA_ASSIGN_OPERATOR_EX(complex<type>, func)
#define PHP_ARMA_COMPLEX_OPERATOR_ASSIGN(func) \
#define PHP_ARMA_COMPLEX_ASSIGN_OPERATOR(func) \
PHP_ARMA_OPERATOR_BEGIN(complex_ce) \
PHP_ARMA_COMPLEX_OPERATOR_ASSIGN_EX(double, func) \
PHP_ARMA_COMPLEX_ASSIGN_OPERATOR_EX(double, func) \
PHP_ARMA_OPERATOR_END()
#endif // PHP_ARMA_OPERATORS

View File

@ -14,7 +14,7 @@ namespace php_arma
zend_always_inline
void const_declare(zend_class_entry *ce, Ts&&... constants)
{
for (auto [name, val] : { constants... }) {
for (auto&& [name, val] : { constants... }) {
zend_declare_class_constant_long(ce, name, strlen(name), val);
}
}

View File

@ -98,7 +98,7 @@ namespace php_arma
int add_assign_handler(zend_execute_data *execute_data)
{
return op_handler(execute_data, PHP_ARMA_OP_HANDLER_FUNC {
PHP_ARMA_COMPLEX_OPERATOR_ASSIGN(add);
PHP_ARMA_COMPLEX_ASSIGN_OPERATOR(add);
return false;
});
@ -116,7 +116,7 @@ namespace php_arma
int sub_assign_handler(zend_execute_data *execute_data)
{
return op_handler(execute_data, PHP_ARMA_OP_HANDLER_FUNC {
PHP_ARMA_COMPLEX_OPERATOR_ASSIGN(sub);
PHP_ARMA_COMPLEX_ASSIGN_OPERATOR(sub);
return false;
});
@ -135,7 +135,7 @@ namespace php_arma
int mul_assign_handler(zend_execute_data *execute_data)
{
return op_handler(execute_data, PHP_ARMA_OP_HANDLER_FUNC {
PHP_ARMA_COMPLEX_OPERATOR_ASSIGN(mul);
PHP_ARMA_COMPLEX_ASSIGN_OPERATOR(mul);
return false;
});
@ -153,7 +153,7 @@ namespace php_arma
int div_assign_handler(zend_execute_data *execute_data)
{
return op_handler(execute_data, PHP_ARMA_OP_HANDLER_FUNC {
PHP_ARMA_COMPLEX_OPERATOR_ASSIGN(div);
PHP_ARMA_COMPLEX_ASSIGN_OPERATOR(div);
return false;
});
@ -171,7 +171,7 @@ namespace php_arma
int pow_assign_handler(zend_execute_data *execute_data)
{
return op_handler(execute_data, PHP_ARMA_OP_HANDLER_FUNC {
PHP_ARMA_COMPLEX_OPERATOR_ASSIGN(pow);
PHP_ARMA_COMPLEX_ASSIGN_OPERATOR(pow);
return false;
});

View File

@ -95,7 +95,7 @@
#define PHP_ARMA_OPERATOR_EX(cls, func) \
PHP_ARMA_OPERATOR_EX2(cls, cls, func)
#define PHP_ARMA_OPERATOR_ASSIGN_EX(cls, func) \
#define PHP_ARMA_ASSIGN_OPERATOR_EX(cls, func) \
if (instanceof_function(ce, cls::ce)) { \
auto v = cls::operators::func(zv1, zv2, zv1); \
if (rv) { \

View File

@ -33,6 +33,7 @@
namespace php_arma
{
#ifdef __GNUC__
zend_always_inline
int zval_to_fd(zval *zv)
{
@ -47,13 +48,14 @@ namespace php_arma
} *stream_data = reinterpret_cast<decltype(stream_data)>(stream->abstract);
return stream_data->fd;
}
#else
zend_always_inline
void zval_to_iostream_unsupported()
{
zend_throw_exception(zend_ce_type_error, "Resource is not yet supported. Use file name instead, "
"or re-compile php-armadillo with a compiler supporting GNU extensions.", 0);
}
#endif // __GNUC__
}
#endif // !PHP_ARMA_STREAM_UTILS_HH