update
This commit is contained in:
parent
03c78a5850
commit
a5f076401f
|
@ -174,7 +174,7 @@ namespace php_arma
|
||||||
|
|
||||||
template <const char *Name, typename F>
|
template <const char *Name, typename F>
|
||||||
zend_always_inline
|
zend_always_inline
|
||||||
zend_class_entry *ce_init(const zend_function_entry *methods, F init_func)
|
zend_class_entry *ce_init(const zend_function_entry *methods, F&& init_func)
|
||||||
{
|
{
|
||||||
zend_class_entry tmp_ce;
|
zend_class_entry tmp_ce;
|
||||||
constexpr auto name = str::with_arma_prefix<Name>;
|
constexpr auto name = str::with_arma_prefix<Name>;
|
||||||
|
@ -185,7 +185,7 @@ namespace php_arma
|
||||||
|
|
||||||
template <const char *Name, typename F, typename... Ts>
|
template <const char *Name, typename F, typename... Ts>
|
||||||
zend_always_inline
|
zend_always_inline
|
||||||
zend_class_entry *ce_init(const zend_function_entry *methods, F init_func, Ts... interfaces)
|
zend_class_entry *ce_init(const zend_function_entry *methods, F&& init_func, Ts... interfaces)
|
||||||
{
|
{
|
||||||
auto ce = ce_init<Name>(methods, init_func);
|
auto ce = ce_init<Name>(methods, init_func);
|
||||||
zend_class_implements(ce, sizeof...(Ts), interfaces...);
|
zend_class_implements(ce, sizeof...(Ts), interfaces...);
|
||||||
|
@ -296,7 +296,7 @@ namespace php_arma
|
||||||
|
|
||||||
template <typename T, typename F>
|
template <typename T, typename F>
|
||||||
zend_always_inline
|
zend_always_inline
|
||||||
zend_object *object_create(zend_class_entry *ce, F init)
|
zend_object *object_create(zend_class_entry *ce, F&& init)
|
||||||
{
|
{
|
||||||
auto obj = reinterpret_cast<T*>(emalloc(sizeof(T) + sizeof(zend_object) - sizeof(zval)));
|
auto obj = reinterpret_cast<T*>(emalloc(sizeof(T) + sizeof(zend_object) - sizeof(zval)));
|
||||||
auto zobj = to_zend_object(obj);
|
auto zobj = to_zend_object(obj);
|
||||||
|
|
|
@ -5,12 +5,14 @@ Test save/load for `Arma\Mat`.
|
||||||
require_once 'includes/loaded.php';
|
require_once 'includes/loaded.php';
|
||||||
is_php_arma_loaded();
|
is_php_arma_loaded();
|
||||||
?>
|
?>
|
||||||
|
--ENV--
|
||||||
|
TMP_FILE=/tmp/php_arma_test.tmp
|
||||||
--FILE--
|
--FILE--
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once 'includes/assert.php';
|
require_once 'includes/assert.php';
|
||||||
|
|
||||||
$file_name = 'test_mat_data';
|
$file_name = getenv('TMP_FILE');
|
||||||
|
|
||||||
$mat = Arma\CxDMat::fromString('(1 2) (3 4); (5 6) (7 8)');
|
$mat = Arma\CxDMat::fromString('(1 2) (3 4); (5 6) (7 8)');
|
||||||
batch_assert('saving of `Arma\\Mat`',
|
batch_assert('saving of `Arma\\Mat`',
|
||||||
|
@ -22,6 +24,7 @@ $handle = fopen($file_name, 'r');
|
||||||
batch_assert('loading of `Arma\\Mat`',
|
batch_assert('loading of `Arma\\Mat`',
|
||||||
[true, $mat1->load($handle, Arma\FileType::ARMA_BINARY)]
|
[true, $mat1->load($handle, Arma\FileType::ARMA_BINARY)]
|
||||||
);
|
);
|
||||||
|
fclose($handle);
|
||||||
|
|
||||||
$eq_mat = $mat->equals($mat1);
|
$eq_mat = $mat->equals($mat1);
|
||||||
batch_assert('loading of `Arma\\Mat`',
|
batch_assert('loading of `Arma\\Mat`',
|
||||||
|
@ -32,6 +35,7 @@ batch_assert('loading of `Arma\\Mat`',
|
||||||
?>
|
?>
|
||||||
--CLEAN--
|
--CLEAN--
|
||||||
<?php
|
<?php
|
||||||
|
$file_name = getenv('TMP_FILE');
|
||||||
if (file_exists($file_name)) {
|
if (file_exists($file_name)) {
|
||||||
unlink($file_name);
|
unlink($file_name);
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue
Block a user