source: trunk/const_string.c @ 20

Last change on this file since 20 was 20, checked in by moo, 8 years ago

get* proto changes

File size: 2.3 KB
RevLine 
[1]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
[20]27zend_uchar xc_get_op_type_count()
[1]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#if 0
52    /* 11 */ "",
53    /* 12 */ "",
54    /* 13 */ "",
55    /* 14 */ "",
56    /* 15 */ "", "", "", "", "",
57
58/* IS_CONSTANT_INDEX */
59    /* 20 */ "CIDX IS_NULL",
60    /* 21 */ "CIDX IS_LONG",
61    /* 22 */ "CIDX IS_DOUBLE",
62    /* 23 */ "CIDX IS_BOOL",
63    /* 24 */ "CIDX IS_ARRAY",
64    /* 25 */ "CIDX IS_OBJECT",
65    /* 26 */ "CIDX IS_STRING",
66    /* 27 */ "CIDX IS_RESOURCE",
67    /* 28 */ "CIDX IS_CONSTANT",
68    /* 29 */ "CIDX IS_CONSTANT_ARRAY"
69    /* 20 */ "CIDX IS_UNICODE",
70#endif
71};
72
[20]73zend_uchar xc_get_data_type_count()
[1]74{
75    return sizeof(data_type_names) / sizeof(data_type_names[0]);
76}
77
78const char *xc_get_data_type(zend_uchar data_type)
79{
80#if 0
81    if (data_type & IS_CONSTANT_INDEX) {
82        data_type = (data_type & ~IS_CONSTANT_INDEX) + 20;
83    }
84#endif
85    data_type &= ~IS_CONSTANT_INDEX;
86    return data_type_names[data_type];
87}
88/* }}} */
89/* {{{ xc_get_opcode */
90#if PHP_MAJAR_VERSION >= 6
91#   include     "const_string_opcodes_php6.x.h"
92#else
93#   ifdef ZEND_ENGINE_2_1
94#       include     "const_string_opcodes_php5.1.h"
95#   else
96#       ifdef ZEND_ENGINE_2
97#           include "const_string_opcodes_php5.0.h"
98#       else
99#           include "const_string_opcodes_php4.x.h"
100#       endif
101#   endif
102#endif
103
[20]104zend_uchar xc_get_opcode_count()
[1]105{
106    return sizeof(xc_opcode_names) / sizeof(xc_opcode_names[0]);
107}
108
109const char *xc_get_opcode(zend_uchar opcode)
110{
111    assert(opcode < xc_get_opcode_count());
112    return xc_opcode_names[opcode];
113}
114/* }}} */
Note: See TracBrowser for help on using the repository browser.