Skip to content

Commit

Permalink
- Nuke persist_alloc().
Browse files Browse the repository at this point in the history
  • Loading branch information
Andi Gutmans committed Jun 22, 2002
1 parent c83f5a5 commit b53569c
Show file tree
Hide file tree
Showing 7 changed files with 3 additions and 71 deletions.
23 changes: 0 additions & 23 deletions Zend/zend_alloc.c
Expand Up @@ -747,29 +747,6 @@ ZEND_API void _full_mem_check(int silent ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_D
#endif


ZEND_API int _persist_alloc(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mem_header *p = (zend_mem_header *) ((char *)ptr-sizeof(zend_mem_header)-MEM_HEADER_PADDING);
TSRMLS_FETCH();

#if ZEND_DEBUG
_mem_block_check(ptr, 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
#endif

HANDLE_BLOCK_INTERRUPTIONS();

/* remove the block from the non persistent list */
REMOVE_POINTER_FROM_LIST(p);

p->persistent = 1;

/* add the block to the persistent list */
ADD_POINTER_TO_LIST(p);
HANDLE_UNBLOCK_INTERRUPTIONS();
return REAL_SIZE(p->size)+sizeof(zend_mem_header)+MEM_HEADER_PADDING;
}


/*
* Local variables:
* tab-width: 4
Expand Down
3 changes: 0 additions & 3 deletions Zend/zend_alloc.h
Expand Up @@ -79,7 +79,6 @@ ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LI
ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API char *_estrndup(const char *s, unsigned int length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
ZEND_API int _persist_alloc(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);

/* Standard wrapper macros */
#define emalloc(size) _emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
Expand All @@ -89,7 +88,6 @@ ZEND_API int _persist_alloc(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
#define erealloc_recoverable(ptr, size) _erealloc((ptr), (size), 1 ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define estrdup(s) _estrdup((s) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define estrndup(s, length) _estrndup((s), (length) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)
#define persist_alloc(p) _persist_alloc((p) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC)

/* Relay wrapper macros */
#define emalloc_rel(size) _emalloc((size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
Expand All @@ -99,7 +97,6 @@ ZEND_API int _persist_alloc(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
#define erealloc_recoverable_rel(ptr, size) _erealloc((ptr), (size), 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define estrdup_rel(s) _estrdup((s) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define estrndup_rel(s, length) _estrndup((s), (length) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
#define persist_alloc_rel(p) _persist_alloc((p) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)

/* Selective persistent/non persistent allocation macros */
#define pemalloc(size, persistent) ((persistent)?malloc(size):emalloc(size))
Expand Down
9 changes: 2 additions & 7 deletions Zend/zend_constants.c
Expand Up @@ -27,8 +27,7 @@

void free_zend_constant(zend_constant *c)
{
if (!(c->flags & CONST_PERSISTENT)
|| (c->flags & CONST_EFREE_PERSISTENT)) {
if (!(c->flags & CONST_PERSISTENT)) {
zval_dtor(&c->value);
}
free(c->name);
Expand All @@ -40,9 +39,6 @@ void copy_zend_constant(zend_constant *c)
c->name = zend_strndup(c->name, c->name_len);
if (!(c->flags & CONST_PERSISTENT)) {
zval_copy_ctor(&c->value);
if (c->flags & CONST_EFREE_PERSISTENT) { /* persist_alloc()'d data */
persist_alloc(&c->value);
}
}
}

Expand Down Expand Up @@ -265,8 +261,7 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)

if (zend_hash_add(EG(zend_constants), lowercase_name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) {
free(c->name);
if (!(c->flags & CONST_PERSISTENT)
|| (c->flags & CONST_EFREE_PERSISTENT)) {
if (!(c->flags & CONST_PERSISTENT)) {
zval_dtor(&c->value);
}
zend_error(E_NOTICE,"Constant %s already defined", lowercase_name);
Expand Down
4 changes: 0 additions & 4 deletions Zend/zend_constants.h
Expand Up @@ -25,10 +25,6 @@

#define CONST_CS (1<<0) /* Case Sensitive */
#define CONST_PERSISTENT (1<<1) /* Persistent */
#define CONST_EFREE_PERSISTENT (1<<2) /* In conjunction with CONST_PERSISTENT,
* means that the constant should be freed
* using zval_dtor() on shutdown.
*/

typedef struct _zend_constant {
zval value;
Expand Down
2 changes: 1 addition & 1 deletion Zend/zend_objects.c
Expand Up @@ -43,7 +43,7 @@ static inline void zend_objects_destroy_object(zend_object *object, zend_object_
zend_objects_call_destructor(object, handle TSRMLS_CC);
/* Nuke the object */
zend_hash_destroy(object->properties);
efree(object->properties);
FREE_HASHTABLE(object->properties);
efree(object);
}

Expand Down
31 changes: 0 additions & 31 deletions Zend/zend_variables.c
Expand Up @@ -138,37 +138,6 @@ ZEND_API int _zval_copy_ctor(zval *zvalue ZEND_FILE_LINE_DC)
}


ZEND_API int zval_persist(zval *zvalue TSRMLS_DC)
{
switch (zvalue->type) {
case IS_OBJECT:
case IS_RESOURCE:
return FAILURE; /* resources and objects cannot be persisted */
break;
case IS_BOOL:
case IS_LONG:
case IS_NULL:
break;
case IS_CONSTANT:
case IS_STRING:
if (zvalue->value.str.val) {
if (zvalue->value.str.len==0) {
zvalue->value.str.val = empty_string;
return SUCCESS;
}
}
persist_alloc(zvalue->value.str.val);
break;
case IS_ARRAY:
case IS_CONSTANT_ARRAY:
persist_alloc(zvalue->value.ht);
zend_hash_apply(zvalue->value.ht, (apply_func_t) zval_persist TSRMLS_CC);
break;
}
return SUCCESS;
}


ZEND_API int zend_print_variable(zval *var)
{
return zend_print_zval(var, 0);
Expand Down
2 changes: 0 additions & 2 deletions Zend/zend_variables.h
Expand Up @@ -32,8 +32,6 @@ ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC);
#define zval_dtor(zvalue) _zval_dtor((zvalue) ZEND_FILE_LINE_CC)
#define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)

ZEND_API int zval_persist(zval *zvalue TSRMLS_DC);

#if ZEND_DEBUG
ZEND_API int _zval_copy_ctor_wrapper(zval *zvalue);
ZEND_API void _zval_dtor_wrapper(zval *zvalue);
Expand Down

0 comments on commit b53569c

Please sign in to comment.