@@ -347,6 +347,23 @@ PHP_METHOD(CArray, setShape)
347
347
newcarray = CArray_Newshape (carray , new_shape , zend_hash_num_elements (Z_ARRVAL_P (new_shape_zval )), CARRAY_CORDER , & ptr );
348
348
FREE_TUPLE (new_shape );
349
349
}
350
+ PHP_METHOD (CArray , shape )
351
+ {
352
+ MemoryPointer ptr ;
353
+ CArray * target ;
354
+ zval * obj = getThis ();
355
+ zval tmp_zval ;
356
+ int i ;
357
+
358
+ ZVAL_TO_MEMORYPOINTER (obj , & ptr , NULL );
359
+ target = CArray_FromMemoryPointer (& ptr );
360
+
361
+ array_init_size (return_value , CArray_NDIM (target ));
362
+ for (i = 0 ; i < CArray_NDIM (target ); i ++ ) {
363
+ ZVAL_LONG (& tmp_zval , CArray_DIMS (target )[i ]);
364
+ zend_hash_next_index_insert_new (Z_ARRVAL_P (return_value ), & tmp_zval );
365
+ }
366
+ }
350
367
PHP_METHOD (CArray , reshape )
351
368
{
352
369
MemoryPointer ptr ;
@@ -2535,6 +2552,10 @@ PHP_METHOD(CArray, map)
2535
2552
}
2536
2553
efree (params );
2537
2554
}
2555
+ PHP_METHOD (CArray , __invoke )
2556
+ {
2557
+ throw_notimplemented_exception ();
2558
+ }
2538
2559
2539
2560
/**
2540
2561
* CLASS METHODS
@@ -2546,6 +2567,7 @@ static zend_function_entry carray_class_methods[] =
2546
2567
PHP_ME (CArray , dump , NULL , ZEND_ACC_PUBLIC )
2547
2568
PHP_ME (CArray , print , NULL , ZEND_ACC_PUBLIC )
2548
2569
PHP_ME (CArray , __set , arginfo_array_set , ZEND_ACC_PUBLIC )
2570
+ PHP_ME (CArray , __invoke , NULL , ZEND_ACC_PUBLIC )
2549
2571
PHP_ME (CArray , __toString , NULL , ZEND_ACC_PUBLIC )
2550
2572
PHP_ME (CArray , toArray , NULL , ZEND_ACC_PUBLIC )
2551
2573
PHP_ME (CArray , map , NULL , ZEND_ACC_PUBLIC )
@@ -2599,6 +2621,7 @@ static zend_function_entry carray_class_methods[] =
2599
2621
PHP_ME (CArray , transpose , NULL , ZEND_ACC_PUBLIC | ZEND_ACC_STATIC )
2600
2622
PHP_ME (CArray , reshape , NULL , ZEND_ACC_PUBLIC | ZEND_ACC_STATIC )
2601
2623
PHP_ME (CArray , setShape , NULL , ZEND_ACC_PUBLIC )
2624
+ PHP_ME (CArray , shape , NULL , ZEND_ACC_PUBLIC )
2602
2625
2603
2626
//ROUNDING
2604
2627
PHP_ME (CArray , ceil , NULL , ZEND_ACC_PUBLIC | ZEND_ACC_STATIC )
@@ -2764,7 +2787,8 @@ static int carray_do_operation_ex(zend_uchar opcode, zval *result, zval *op1, zv
2764
2787
}
2765
2788
}
2766
2789
2767
- static int carray_compare (zval * object1 , zval * object2 TSRMLS_DC ) /* {{{ */
2790
+ static
2791
+ int carray_compare (zval * object1 , zval * object2 TSRMLS_DC ) /* {{{ */
2768
2792
{
2769
2793
CArray * a , * b ;
2770
2794
MemoryPointer ptr1 , ptr2 ;
@@ -2780,7 +2804,7 @@ static int carray_compare(zval *object1, zval *object2 TSRMLS_DC) /* {{{ */
2780
2804
return FAILURE ;
2781
2805
}
2782
2806
2783
- int
2807
+ static int
2784
2808
carray_count (zval * object , long * count TSRMLS_DC ) {
2785
2809
MemoryPointer ptr ;
2786
2810
CArray * target ;
@@ -2794,7 +2818,8 @@ carray_count(zval *object, long *count TSRMLS_DC) {
2794
2818
return SUCCESS ;
2795
2819
}
2796
2820
2797
- static int carray_do_operation (zend_uchar opcode , zval * result , zval * op1 , zval * op2 ) /* {{{ */
2821
+ static
2822
+ int carray_do_operation (zend_uchar opcode , zval * result , zval * op1 , zval * op2 ) /* {{{ */
2798
2823
{
2799
2824
zval op1_copy ;
2800
2825
int retval ;
@@ -2835,6 +2860,7 @@ static PHP_MINIT_FUNCTION(carray)
2835
2860
carray_object_handlers .cast_object = carray_cast ;
2836
2861
carray_object_handlers .count_elements = carray_count ;
2837
2862
2863
+
2838
2864
zend_class_implements (carray_sc_entry , 1 , zend_ce_arrayaccess );
2839
2865
2840
2866
init_exception_objects ();
0 commit comments