php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
spl_dllist.c File Reference
#include "php.h"
#include "zend_interfaces.h"
#include "zend_exceptions.h"
#include "zend_hash.h"
#include "ext/standard/php_var.h"
#include "zend_smart_str.h"
#include "spl_dllist.h"
#include "spl_dllist_arginfo.h"
#include "spl_exceptions.h"
#include "spl_functions.h"

Go to the source code of this file.

Data Structures

struct  _spl_ptr_llist_element
 
struct  _spl_ptr_llist
 
struct  _spl_dllist_object
 
struct  _spl_dllist_it
 

Macros

#define SPL_LLIST_RC(elem)
 
#define SPL_LLIST_DELREF(elem)
 
#define SPL_LLIST_CHECK_DELREF_EX(elem, on_free)
 
#define SPL_LLIST_CHECK_DELREF(elem)
 
#define SPL_LLIST_ADDREF(elem)
 
#define SPL_LLIST_CHECK_ADDREF(elem)
 
#define Z_SPLDLLIST_P(zv)
 

Typedefs

typedef struct _spl_ptr_llist_element spl_ptr_llist_element
 
typedef struct _spl_ptr_llist spl_ptr_llist
 
typedef struct _spl_dllist_object spl_dllist_object
 
typedef struct _spl_dllist_it spl_dllist_it
 

Functions

 PHP_METHOD (SplDoublyLinkedList, push)
 
 PHP_METHOD (SplDoublyLinkedList, unshift)
 
 PHP_METHOD (SplDoublyLinkedList, pop)
 
 PHP_METHOD (SplDoublyLinkedList, shift)
 
 PHP_METHOD (SplDoublyLinkedList, top)
 
 PHP_METHOD (SplDoublyLinkedList, bottom)
 
 PHP_METHOD (SplDoublyLinkedList, count)
 
 PHP_METHOD (SplDoublyLinkedList, isEmpty)
 
 PHP_METHOD (SplDoublyLinkedList, setIteratorMode)
 
 PHP_METHOD (SplDoublyLinkedList, getIteratorMode)
 
 PHP_METHOD (SplDoublyLinkedList, offsetExists)
 
 PHP_METHOD (SplDoublyLinkedList, offsetGet)
 
 PHP_METHOD (SplDoublyLinkedList, offsetSet)
 
 PHP_METHOD (SplDoublyLinkedList, offsetUnset)
 
 PHP_METHOD (SplDoublyLinkedList, key)
 
 PHP_METHOD (SplDoublyLinkedList, prev)
 
 PHP_METHOD (SplDoublyLinkedList, next)
 
 PHP_METHOD (SplDoublyLinkedList, valid)
 
 PHP_METHOD (SplDoublyLinkedList, rewind)
 
 PHP_METHOD (SplDoublyLinkedList, current)
 
 PHP_METHOD (SplDoublyLinkedList, serialize)
 
 PHP_METHOD (SplDoublyLinkedList, unserialize)
 
 PHP_METHOD (SplDoublyLinkedList, __serialize)
 
 PHP_METHOD (SplDoublyLinkedList, __unserialize)
 
 PHP_METHOD (SplDoublyLinkedList, add)
 
 PHP_METHOD (SplDoublyLinkedList, __debugInfo)
 
memcpyspl_handler_SplDoublyLinkedList (zend_object_handlers)
 

Variables

PHPAPI zend_class_entryspl_ce_SplDoublyLinkedList
 
PHPAPI zend_class_entryspl_ce_SplQueue = register_class_SplQueue(spl_ce_SplDoublyLinkedList)
 
PHPAPI zend_class_entryspl_ce_SplStack = register_class_SplStack(spl_ce_SplDoublyLinkedList)
 
spl_ce_SplDoublyLinkedList create_object = spl_dllist_object_new
 
spl_ce_SplDoublyLinkedList default_object_handlers = &spl_handler_SplDoublyLinkedList
 
spl_ce_SplDoublyLinkedList get_iterator = spl_dllist_get_iterator
 
spl_handler_SplDoublyLinkedList offset = XtOffsetOf(spl_dllist_object, std)
 
spl_handler_SplDoublyLinkedList clone_obj = spl_dllist_object_clone
 
spl_handler_SplDoublyLinkedList count_elements = spl_dllist_object_count_elements
 
spl_handler_SplDoublyLinkedList get_gc = spl_dllist_object_get_gc
 
spl_handler_SplDoublyLinkedList free_obj = spl_dllist_object_free_storage
 
return SUCCESS
 

Macro Definition Documentation

◆ SPL_LLIST_ADDREF

#define SPL_LLIST_ADDREF ( elem)
Value:
SPL_LLIST_RC(elem)++
#define SPL_LLIST_RC(elem)
Definition spl_dllist.c:38

Definition at line 51 of file spl_dllist.c.

◆ SPL_LLIST_CHECK_ADDREF

#define SPL_LLIST_CHECK_ADDREF ( elem)
Value:
if (elem) SPL_LLIST_RC(elem)++

Definition at line 52 of file spl_dllist.c.

◆ SPL_LLIST_CHECK_DELREF

#define SPL_LLIST_CHECK_DELREF ( elem)
Value:
#define SPL_LLIST_CHECK_DELREF_EX(elem, on_free)
Definition spl_dllist.c:44

Definition at line 49 of file spl_dllist.c.

◆ SPL_LLIST_CHECK_DELREF_EX

#define SPL_LLIST_CHECK_DELREF_EX ( elem,
on_free )
Value:
if ((elem) && !--SPL_LLIST_RC(elem)) { \
efree(elem); \
on_free \
}

Definition at line 44 of file spl_dllist.c.

◆ SPL_LLIST_DELREF

#define SPL_LLIST_DELREF ( elem)
Value:
if (!--SPL_LLIST_RC(elem)) { \
efree(elem); \
}

Definition at line 40 of file spl_dllist.c.

◆ SPL_LLIST_RC

#define SPL_LLIST_RC ( elem)
Value:
Z_EXTRA((elem)->data)
zend_constant * data
#define Z_EXTRA(zval)
Definition zend_types.h:695

Definition at line 38 of file spl_dllist.c.

◆ Z_SPLDLLIST_P

#define Z_SPLDLLIST_P ( zv)
Value:
spl_dllist_from_obj(Z_OBJ_P((zv)))
zval * zv
Definition ffi.c:3975
#define Z_OBJ_P(zval_p)
Definition zend_types.h:990

Definition at line 100 of file spl_dllist.c.

Typedef Documentation

◆ spl_dllist_it

typedef struct _spl_dllist_it spl_dllist_it

Definition at line 71 of file spl_dllist.c.

◆ spl_dllist_object

Definition at line 70 of file spl_dllist.c.

◆ spl_ptr_llist

typedef struct _spl_ptr_llist spl_ptr_llist

◆ spl_ptr_llist_element

Function Documentation

◆ PHP_METHOD() [1/26]

PHP_METHOD ( SplDoublyLinkedList ,
__debugInfo  )

Definition at line 1206 of file spl_dllist.c.

◆ PHP_METHOD() [2/26]

PHP_METHOD ( SplDoublyLinkedList ,
__serialize  )

Definition at line 1096 of file spl_dllist.c.

◆ PHP_METHOD() [3/26]

PHP_METHOD ( SplDoublyLinkedList ,
__unserialize  )

Definition at line 1128 of file spl_dllist.c.

◆ PHP_METHOD() [4/26]

PHP_METHOD ( SplDoublyLinkedList ,
add  )

Definition at line 1158 of file spl_dllist.c.

◆ PHP_METHOD() [5/26]

PHP_METHOD ( SplDoublyLinkedList ,
bottom  )

Definition at line 570 of file spl_dllist.c.

◆ PHP_METHOD() [6/26]

PHP_METHOD ( SplDoublyLinkedList ,
count  )

Definition at line 592 of file spl_dllist.c.

◆ PHP_METHOD() [7/26]

PHP_METHOD ( SplDoublyLinkedList ,
current  )

Definition at line 978 of file spl_dllist.c.

◆ PHP_METHOD() [8/26]

PHP_METHOD ( SplDoublyLinkedList ,
getIteratorMode  )

Definition at line 645 of file spl_dllist.c.

◆ PHP_METHOD() [9/26]

PHP_METHOD ( SplDoublyLinkedList ,
isEmpty  )

Definition at line 607 of file spl_dllist.c.

◆ PHP_METHOD() [10/26]

PHP_METHOD ( SplDoublyLinkedList ,
key  )

Definition at line 913 of file spl_dllist.c.

◆ PHP_METHOD() [11/26]

PHP_METHOD ( SplDoublyLinkedList ,
next  )

Definition at line 939 of file spl_dllist.c.

◆ PHP_METHOD() [12/26]

PHP_METHOD ( SplDoublyLinkedList ,
offsetExists  )

Definition at line 660 of file spl_dllist.c.

◆ PHP_METHOD() [13/26]

PHP_METHOD ( SplDoublyLinkedList ,
offsetGet  )

Definition at line 675 of file spl_dllist.c.

◆ PHP_METHOD() [14/26]

PHP_METHOD ( SplDoublyLinkedList ,
offsetSet  )

Definition at line 702 of file spl_dllist.c.

◆ PHP_METHOD() [15/26]

PHP_METHOD ( SplDoublyLinkedList ,
offsetUnset  )

Definition at line 745 of file spl_dllist.c.

◆ PHP_METHOD() [16/26]

PHP_METHOD ( SplDoublyLinkedList ,
pop  )

Definition at line 510 of file spl_dllist.c.

◆ PHP_METHOD() [17/26]

PHP_METHOD ( SplDoublyLinkedList ,
prev  )

Definition at line 926 of file spl_dllist.c.

◆ PHP_METHOD() [18/26]

PHP_METHOD ( SplDoublyLinkedList ,
push  )

Definition at line 480 of file spl_dllist.c.

◆ PHP_METHOD() [19/26]

PHP_METHOD ( SplDoublyLinkedList ,
rewind  )

Definition at line 965 of file spl_dllist.c.

◆ PHP_METHOD() [20/26]

PHP_METHOD ( SplDoublyLinkedList ,
serialize  )

Definition at line 996 of file spl_dllist.c.

◆ PHP_METHOD() [21/26]

PHP_METHOD ( SplDoublyLinkedList ,
setIteratorMode  )

Definition at line 621 of file spl_dllist.c.

◆ PHP_METHOD() [22/26]

PHP_METHOD ( SplDoublyLinkedList ,
shift  )

Definition at line 529 of file spl_dllist.c.

◆ PHP_METHOD() [23/26]

PHP_METHOD ( SplDoublyLinkedList ,
top  )

Definition at line 548 of file spl_dllist.c.

◆ PHP_METHOD() [24/26]

PHP_METHOD ( SplDoublyLinkedList ,
unserialize  )

Definition at line 1035 of file spl_dllist.c.

◆ PHP_METHOD() [25/26]

PHP_METHOD ( SplDoublyLinkedList ,
unshift  )

Definition at line 495 of file spl_dllist.c.

◆ PHP_METHOD() [26/26]

PHP_METHOD ( SplDoublyLinkedList ,
valid  )

Definition at line 952 of file spl_dllist.c.

◆ spl_handler_SplDoublyLinkedList()

memcpy & spl_handler_SplDoublyLinkedList ( zend_object_handlers )

Variable Documentation

◆ clone_obj

spl_handler_SplDoublyLinkedList clone_obj = spl_dllist_object_clone

Definition at line 1264 of file spl_dllist.c.

◆ count_elements

spl_handler_SplPriorityQueue count_elements = spl_dllist_object_count_elements

Definition at line 1265 of file spl_dllist.c.

◆ create_object

spl_ce_SplStack create_object = spl_dllist_object_new

Definition at line 1257 of file spl_dllist.c.

◆ default_object_handlers

spl_ce_SplDoublyLinkedList default_object_handlers = &spl_handler_SplDoublyLinkedList

Definition at line 1258 of file spl_dllist.c.

◆ free_obj

spl_handler_SplDoublyLinkedList free_obj = spl_dllist_object_free_storage

Definition at line 1267 of file spl_dllist.c.

◆ get_gc

spl_handler_SplDoublyLinkedList get_gc = spl_dllist_object_get_gc

Definition at line 1266 of file spl_dllist.c.

◆ get_iterator

spl_ce_SplPriorityQueue get_iterator = spl_dllist_get_iterator

Definition at line 1259 of file spl_dllist.c.

◆ offset

spl_handler_SplDoublyLinkedList offset = XtOffsetOf(spl_dllist_object, std)

Definition at line 1263 of file spl_dllist.c.

◆ spl_ce_SplDoublyLinkedList

PHPAPI zend_class_entry* spl_ce_SplDoublyLinkedList

Definition at line 34 of file spl_dllist.c.

◆ spl_ce_SplQueue

spl_ce_SplQueue = register_class_SplQueue(spl_ce_SplDoublyLinkedList)

Definition at line 35 of file spl_dllist.c.

◆ spl_ce_SplStack

spl_ce_SplStack = register_class_SplStack(spl_ce_SplDoublyLinkedList)

Definition at line 36 of file spl_dllist.c.

◆ SUCCESS

return SUCCESS

Definition at line 1277 of file spl_dllist.c.