Re: cvs: php4 /ext/curl multi.c ZendEngine2 zend_list.c zend_list.h
| From: | Andi Gutmans | Date: | Wed, 02 Apr 2003 18:11:14 +0000 |
| Subject: | Re: cvs: php4 /ext/curl multi.c ZendEngine2 zend_list.c zend_list.h | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-19978@lists.php.net to get a copy of this message | ||
I didn't quite understand what you did here. Can you please explain? Is it absolutely necessary to add this hack just for curl?
Andi
At 04:58 PM 4/2/2003 +0000, Sterling Hughes wrote:
sterling Wed Apr 2 11:58:52 2003 EDTModified files:/ZendEngine2 zend_list.c zend_list.h /php4/ext/curl multi.cLog: add the ability for curl_multi_info to introspect the handles. # Zend commit doesn't break anything, so I'm committing it. If anyone # has problems, just speak up. :) Index: ZendEngine2/zend_list.c diff -u ZendEngine2/zend_list.c:1.57 ZendEngine2/zend_list.c:1.58--- ZendEngine2/zend_list.c:1.57 Fri Jan 31 20:49:14 2003 +++ ZendEngine2/zend_list.c Wed Apr 2 11:58:52 2003@@ -17,7 +17,7 @@+----------------------------------------------------------------------+*/ -/* $Id: zend_list.c,v 1.57 2003/02/01 01:49:14 sniper Exp $ */ +/* $Id: zend_list.c,v 1.58 2003/04/02 16:58:52 sterling Exp $ */ /* resource lists */ @@ -43,6 +43,8 @@le.refcount=1;index = zend_hash_next_free_element(&EG(regular_list)); + le.id = index;+zend_hash_index_update(&EG(regular_list), index, (void *) &le, sizeof(zend_rsrc_list_entry), NULL); return index;} @@ -77,7 +79,22 @@}} +ZEND_API int zend_list_id_by_pointer(void *p, int type TSRMLS_DC) +{+ zend_rsrc_list_entry *le; + HashPosition pos;++ for (zend_hash_internal_pointer_reset_ex(&EG(regular_list), &pos); + zend_hash_get_current_data_ex(&EG(regular_list), (void *) &le, &pos) == SUCCESS; + zend_hash_move_forward_ex(&EG(regular_list), &pos)) { + if (le->type == type && le->ptr == p) { + return le->id; + } + }+ return -1;+} + ZEND_API int _zend_list_addref(int id TSRMLS_DC) {zend_rsrc_list_entry *le;Index: ZendEngine2/zend_list.h diff -u ZendEngine2/zend_list.h:1.42 ZendEngine2/zend_list.h:1.43--- ZendEngine2/zend_list.h:1.42 Fri Jan 31 20:49:14 2003 +++ ZendEngine2/zend_list.h Wed Apr 2 11:58:52 2003@@ -17,7 +17,7 @@+----------------------------------------------------------------------+*/ -/* $Id: zend_list.h,v 1.42 2003/02/01 01:49:14 sniper Exp $ */ +/* $Id: zend_list.h,v 1.43 2003/04/02 16:58:52 sterling Exp $ */ #ifndef ZEND_LIST_H #define ZEND_LIST_H @@ -34,6 +34,7 @@void *ptr; int type; int refcount; + int id;} zend_rsrc_list_entry; typedef void (*rsrc_dtor_func_t)(zend_rsrc_list_entry *rsrc TSRMLS_DC); @@ -74,6 +75,7 @@ ZEND_API int _zend_list_addref(int id TSRMLS_DC); ZEND_API int _zend_list_delete(int id TSRMLS_DC); ZEND_API void *_zend_list_find(int id, int *type TSRMLS_DC); +ZEND_API int zend_list_id_by_pointer(void *p, int type TSRMLS_DC);#define zend_list_addref(id) _zend_list_addref(id TSRMLS_CC) #define zend_list_delete(id) _zend_list_delete(id TSRMLS_CC)Index: php4/ext/curl/multi.c diff -u php4/ext/curl/multi.c:1.7 php4/ext/curl/multi.c:1.8 --- php4/ext/curl/multi.c:1.7 Mon Mar 17 10:06:11 2003+++ php4/ext/curl/multi.c Wed Apr 2 11:58:52 2003@@ -16,7 +16,7 @@+----------------------------------------------------------------------+*/ -/* $Id: multi.c,v 1.7 2003/03/17 15:06:11 sniper Exp $ */ +/* $Id: multi.c,v 1.8 2003/04/02 16:58:52 sterling Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -221,7 +221,7 @@array_init(return_value); add_assoc_long(return_value, "msg", tmp_msg->msg); add_assoc_long(return_value, "result", tmp_msg->data.result); -/* add_assoc_resource(return_value, "handle", _find_handle(tmp_msg->easy_handle)); */ + add_assoc_resource(return_value, "handle", zend_list_id_by_pointer(tmp_msg->easy_handle, le_curl TSRMLS_CC)); add_assoc_string(return_value, "whatever", (char *) tmp_msg->data.whatever, 1);} /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php