root/eaccelerator/tags/0.9.4/ea_restore.h

Revision 124, 2.7 kB (checked in by zoeloelip, 3 years ago)

* ea_store.c and ea_restore.c functions clean up
* extraced restore_class_parent and restore_class_methods from

restore_class_entry to share code with loader.c

* extracted opcode handling in encode/decode_op_array into

encode/decode_op to make code more readable

* make decode_class_entry use new functions in ea_restore.c
* readded line-number encoding
* bumped up encoder version to 4 until new loader is in place

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 /*
2    +----------------------------------------------------------------------+
3    | eAccelerator project                                                 |
4    +----------------------------------------------------------------------+
5    | Copyright (c) 2004 - 2005 eAccelerator                               |
6    | http://eaccelerator.net                                              |
7    +----------------------------------------------------------------------+
8    | This program is free software; you can redistribute it and/or        |
9    | modify it under the terms of the GNU General Public License          |
10    | as published by the Free Software Foundation; either version 2       |
11    | of the License, or (at your option) any later version.               |
12    |                                                                      |
13    | This program is distributed in the hope that it will be useful,      |
14    | but WITHOUT ANY WARRANTY; without even the implied warranty of       |
15    | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        |
16    | GNU General Public License for more details.                         |
17    |                                                                      |
18    | You should have received a copy of the GNU General Public License    |
19    | along with this program; if not, write to the Free Software          |
20    | Foundation, Inc., 59 Temple Place - Suite 330, Boston,               |
21    | MA  02111-1307, USA.                                                 |
22    |                                                                      |
23    | A copy is availble at http://www.gnu.org/copyleft/gpl.txt            |
24    +----------------------------------------------------------------------+
25    | Author(s): Dmitry Stogov <dstogov@users.sourceforge.net>             |
26    +----------------------------------------------------------------------+
27    $Id$
28 */
29
30 #ifndef EA_RESTORE_H
31 #define EA_RESTORE_H
32
33 #define FIXUP(x) if((x)!=NULL) {(x) = (void*)(((char*)(x)) + ((long)(EAG(mem))));}
34 void fixup_op_array (eaccelerator_op_array * from TSRMLS_DC);
35 void fixup_class_entry (eaccelerator_class_entry * from TSRMLS_DC);
36
37 void restore_class(mm_fc_entry *p TSRMLS_DC);
38 void restore_function(mm_fc_entry *p TSRMLS_DC);
39 zend_op_array* restore_op_array(zend_op_array *to, eaccelerator_op_array *from TSRMLS_DC);
40 zend_class_entry *restore_class_entry(zend_class_entry * to, eaccelerator_class_entry *from TSRMLS_DC);
41 void restore_class_parent(char *parent, int len, zend_class_entry *to TSRMLS_DC);
42 #ifdef ZEND_ENGINE_2
43 void restore_class_methods(zend_class_entry *to TSRMLS_DC);
44 #endif
45
46 dtor_func_t get_zend_destroy_property_info(TSRMLS_D);
47
48 #endif /* EA_RESTORE_H */
Note: See TracBrowser for help on using the browser.