source: trunk/const_string.c @ 562

Last change on this file since 562 was 562, checked in by moo, 6 years ago

5.3 support, merge news from 1.2

  • Property svn:eol-style set to native
File size: 1.7 KB
Line 
1#include "xcache.h"
2#include "const_string.h"
3
4/* {{{ xc_get_op_type */
5static const char *const op_type_names[] = {
6    /* 0 */ "NULL?",
7    /* 1 */ "IS_CONST",
8    /* 2 */ "IS_TMP_VAR",
9    /* 3 */ NULL,
10    /* 4 */ "IS_VAR",
11    /* 5 */ NULL,
12    /* 6 */ NULL,
13    /* 7 */ NULL,
14    /* 8 */ "IS_UNUSED",
15#ifdef IS_CV
16    /* 9  */ NULL,
17    /* 10 */ NULL,
18    /* 11 */ NULL,
19    /* 12 */ NULL,
20    /* 13 */ NULL,
21    /* 14 */ NULL,
22    /* 15 */ NULL,
23    /* 16 */ "IS_CV"
24#endif
25};
26
27zend_uchar xc_get_op_type_count()
28{
29    return sizeof(op_type_names) / sizeof(op_type_names[0]);
30}
31
32const char *xc_get_op_type(zend_uchar op_type)
33{
34    assert(op_type < xc_get_op_type_count());
35    return op_type_names[op_type];
36}
37/* }}} */
38/* {{{ xc_get_data_type */
39static const char *const data_type_names[] = {
40    /* 0 */ "IS_NULL",
41    /* 1 */ "IS_LONG",
42    /* 2 */ "IS_DOUBLE",
43    /* 3 */ "IS_BOOL",
44    /* 4 */ "IS_ARRAY",
45    /* 5 */ "IS_OBJECT",
46    /* 6 */ "IS_STRING",
47    /* 7 */ "IS_RESOURCE",
48    /* 8 */ "IS_CONSTANT",
49    /* 9 */ "IS_CONSTANT_ARRAY",
50    /* 10 */ "IS_UNICODE"
51};
52
53zend_uchar xc_get_data_type_count()
54{
55    return sizeof(data_type_names) / sizeof(data_type_names[0]);
56}
57
58const char *xc_get_data_type(zend_uchar data_type)
59{
60    return data_type_names[(data_type & IS_CONSTANT_TYPE_MASK)];
61}
62/* }}} */
63/* {{{ xc_get_opcode */
64#if PHP_MAJOR_VERSION >= 6
65#   include "const_string_opcodes_php6.x.h"
66#elif defined(ZEND_ENGINE_2_1)
67#   include "const_string_opcodes_php5.1.h"
68#elif defined(ZEND_ENGINE_2)
69#   include "const_string_opcodes_php5.0.h"
70#else
71#   include "const_string_opcodes_php4.x.h"
72#endif
73
74zend_uchar xc_get_opcode_count()
75{
76    return sizeof(xc_opcode_names) / sizeof(xc_opcode_names[0]);
77}
78
79const char *xc_get_opcode(zend_uchar opcode)
80{
81    assert(opcode < xc_get_opcode_count());
82    return xc_opcode_names[opcode];
83}
84/* }}} */
Note: See TracBrowser for help on using the repository browser.