summaryrefslogtreecommitdiff
path: root/ext/spl/spl_heap.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/spl_heap.c')
-rw-r--r--ext/spl/spl_heap.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/ext/spl/spl_heap.c b/ext/spl/spl_heap.c
index ba1b0fd681..61a24f8b3b 100644
--- a/ext/spl/spl_heap.c
+++ b/ext/spl/spl_heap.c
@@ -1113,7 +1113,10 @@ zend_object_iterator *spl_pqueue_get_iterator(zend_class_entry *ce, zval *object
PHP_MINIT_FUNCTION(spl_heap) /* {{{ */
{
- REGISTER_SPL_STD_CLASS_EX(SplHeap, spl_heap_object_new, class_SplHeap_methods);
+ spl_ce_SplHeap = register_class_SplHeap(zend_ce_iterator, zend_ce_countable);
+ spl_ce_SplHeap->create_object = spl_heap_object_new;
+ spl_ce_SplHeap->get_iterator = spl_heap_get_iterator;
+
memcpy(&spl_handler_SplHeap, &std_object_handlers, sizeof(zend_object_handlers));
spl_handler_SplHeap.offset = XtOffsetOf(spl_heap_object, std);
@@ -1123,18 +1126,18 @@ PHP_MINIT_FUNCTION(spl_heap) /* {{{ */
spl_handler_SplHeap.dtor_obj = zend_objects_destroy_object;
spl_handler_SplHeap.free_obj = spl_heap_object_free_storage;
- REGISTER_SPL_IMPLEMENTS(SplHeap, Iterator);
- REGISTER_SPL_IMPLEMENTS(SplHeap, Countable);
-
- spl_ce_SplHeap->get_iterator = spl_heap_get_iterator;
-
- REGISTER_SPL_SUB_CLASS_EX(SplMinHeap, SplHeap, spl_heap_object_new, class_SplMinHeap_methods);
- REGISTER_SPL_SUB_CLASS_EX(SplMaxHeap, SplHeap, spl_heap_object_new, class_SplMaxHeap_methods);
+ spl_ce_SplMinHeap = register_class_SplMinHeap(spl_ce_SplHeap);
+ spl_ce_SplMinHeap->create_object = spl_heap_object_new;
+ spl_ce_SplMinHeap->get_iterator = spl_heap_get_iterator;
+ spl_ce_SplMaxHeap = register_class_SplMaxHeap(spl_ce_SplHeap);
+ spl_ce_SplMaxHeap->create_object = spl_heap_object_new;
spl_ce_SplMaxHeap->get_iterator = spl_heap_get_iterator;
- spl_ce_SplMinHeap->get_iterator = spl_heap_get_iterator;
- REGISTER_SPL_STD_CLASS_EX(SplPriorityQueue, spl_heap_object_new, class_SplPriorityQueue_methods);
+ spl_ce_SplPriorityQueue = register_class_SplPriorityQueue(zend_ce_iterator, zend_ce_countable);
+ spl_ce_SplPriorityQueue->create_object = spl_heap_object_new;
+ spl_ce_SplPriorityQueue->get_iterator = spl_pqueue_get_iterator;
+
memcpy(&spl_handler_SplPriorityQueue, &std_object_handlers, sizeof(zend_object_handlers));
spl_handler_SplPriorityQueue.offset = XtOffsetOf(spl_heap_object, std);
@@ -1144,11 +1147,6 @@ PHP_MINIT_FUNCTION(spl_heap) /* {{{ */
spl_handler_SplPriorityQueue.dtor_obj = zend_objects_destroy_object;
spl_handler_SplPriorityQueue.free_obj = spl_heap_object_free_storage;
- REGISTER_SPL_IMPLEMENTS(SplPriorityQueue, Iterator);
- REGISTER_SPL_IMPLEMENTS(SplPriorityQueue, Countable);
-
- spl_ce_SplPriorityQueue->get_iterator = spl_pqueue_get_iterator;
-
REGISTER_SPL_CLASS_CONST_LONG(SplPriorityQueue, "EXTR_BOTH", SPL_PQUEUE_EXTR_BOTH);
REGISTER_SPL_CLASS_CONST_LONG(SplPriorityQueue, "EXTR_PRIORITY", SPL_PQUEUE_EXTR_PRIORITY);
REGISTER_SPL_CLASS_CONST_LONG(SplPriorityQueue, "EXTR_DATA", SPL_PQUEUE_EXTR_DATA);