#include <sp_pcontext.h>
Inheritance diagram for sp_pcontext:


Definition at line 107 of file sp_pcontext.h.
| sp_pcontext::sp_pcontext | ( | const sp_pcontext & | ) | [private] |
| sp_pcontext::sp_pcontext | ( | sp_pcontext * | prev | ) |
Definition at line 53 of file sp_pcontext.cc.
References current_cursor_count(), base_list::empty(), get_num_case_exprs(), m_case_expr_id_lst, m_children, m_conds, m_cursor_offset, m_cursors, m_handlers, m_label, m_max_var_index, m_num_case_exprs, m_var_offset, m_vars, my_init_dynamic_array, and VOID.
00054 :Sql_alloc(), m_max_var_index(0), m_max_cursor_index(0), m_max_handler_index(0), 00055 m_context_handlers(0), m_parent(prev), m_pboundary(0) 00056 { 00057 VOID(my_init_dynamic_array(&m_vars, sizeof(sp_variable_t *), 16, 8)); 00058 VOID(my_init_dynamic_array(&m_case_expr_id_lst, sizeof(int), 16, 8)); 00059 VOID(my_init_dynamic_array(&m_conds, sizeof(sp_cond_type_t *), 16, 8)); 00060 VOID(my_init_dynamic_array(&m_cursors, sizeof(LEX_STRING), 16, 8)); 00061 VOID(my_init_dynamic_array(&m_handlers, sizeof(sp_cond_type_t *), 16, 8)); 00062 m_label.empty(); 00063 m_children.empty(); 00064 if (!prev) 00065 { 00066 m_var_offset= m_cursor_offset= 0; 00067 m_num_case_exprs= 0; 00068 } 00069 else 00070 { 00071 m_var_offset= prev->m_var_offset + prev->m_max_var_index; 00072 m_cursor_offset= prev->current_cursor_count(); 00073 m_num_case_exprs= prev->get_num_case_exprs(); 00074 } 00075 }
Here is the call graph for this function:

| void sp_pcontext::add_handlers | ( | uint | n | ) | [inline] |
Definition at line 334 of file sp_pcontext.h.
References m_context_handlers.
00335 { 00336 m_context_handlers+= n; 00337 }
| uint sp_pcontext::context_var_count | ( | ) | [inline] |
Definition at line 171 of file sp_pcontext.h.
References st_dynamic_array::elements, and m_vars.
Referenced by sp_head::execute_function(), and sp_head::execute_procedure().
Here is the caller graph for this function:

| uint sp_pcontext::current_cursor_count | ( | ) | [inline] |
Definition at line 360 of file sp_pcontext.h.
References st_dynamic_array::elements, m_cursor_offset, and m_cursors.
Referenced by sp_pcontext().
00361 { 00362 return m_cursor_offset + m_cursors.elements; 00363 }
Here is the caller graph for this function:

| uint sp_pcontext::current_var_count | ( | ) | [inline] |
Definition at line 164 of file sp_pcontext.h.
References st_dynamic_array::elements, m_var_offset, and m_vars.
Referenced by push_variable().
00165 { 00166 return m_var_offset + m_vars.elements; 00167 }
Here is the caller graph for this function:

| void sp_pcontext::declare_var_boundary | ( | uint | n | ) | [inline] |
Definition at line 227 of file sp_pcontext.h.
References m_pboundary.
00228 { 00229 m_pboundary= n; 00230 }
| void sp_pcontext::destroy | ( | ) |
Definition at line 78 of file sp_pcontext.cc.
References delete_dynamic(), destroy(), base_list::empty(), m_case_expr_id_lst, m_children, m_conds, m_cursors, m_handlers, m_label, and m_vars.
Referenced by destroy(), and sp_head::destroy().
00079 { 00080 List_iterator_fast<sp_pcontext> li(m_children); 00081 sp_pcontext *child; 00082 00083 while ((child= li++)) 00084 child->destroy(); 00085 00086 m_children.empty(); 00087 m_label.empty(); 00088 delete_dynamic(&m_vars); 00089 delete_dynamic(&m_case_expr_id_lst); 00090 delete_dynamic(&m_conds); 00091 delete_dynamic(&m_cursors); 00092 delete_dynamic(&m_handlers); 00093 }
Here is the call graph for this function:

Here is the caller graph for this function:

| uint sp_pcontext::diff_cursors | ( | sp_pcontext * | ctx, | |
| bool | exclusive | |||
| ) |
Definition at line 143 of file sp_pcontext.cc.
References ctx, st_dynamic_array::elements, m_cursors, n, NULL, and parent_context().
00144 { 00145 uint n= 0; 00146 sp_pcontext *pctx= this; 00147 sp_pcontext *last_ctx= NULL; 00148 00149 while (pctx && pctx != ctx) 00150 { 00151 n+= pctx->m_cursors.elements; 00152 last_ctx= pctx; 00153 pctx= pctx->parent_context(); 00154 } 00155 if (pctx) 00156 return (exclusive && last_ctx ? n - last_ctx->m_cursors.elements : n); 00157 return 0; // Didn't find ctx 00158 }
Here is the call graph for this function:

| uint sp_pcontext::diff_handlers | ( | sp_pcontext * | ctx, | |
| bool | exclusive | |||
| ) |
Definition at line 125 of file sp_pcontext.cc.
References ctx, m_context_handlers, n, NULL, and parent_context().
00126 { 00127 uint n= 0; 00128 sp_pcontext *pctx= this; 00129 sp_pcontext *last_ctx= NULL; 00130 00131 while (pctx && pctx != ctx) 00132 { 00133 n+= pctx->m_context_handlers; 00134 last_ctx= pctx; 00135 pctx= pctx->parent_context(); 00136 } 00137 if (pctx) 00138 return (exclusive && last_ctx ? n - last_ctx->m_context_handlers : n); 00139 return 0; // Didn't find ctx 00140 }
Here is the call graph for this function:

| sp_cond_type_t * sp_pcontext::find_cond | ( | LEX_STRING * | name, | |
| my_bool | scoped = 0 | |||
| ) |
Definition at line 284 of file sp_pcontext.cc.
References st_dynamic_array::elements, find_cond(), get_dynamic(), m_conds, m_parent, my_strnncoll, name, NULL, p, and system_charset_info.
Referenced by find_cond().
00285 { 00286 uint i= m_conds.elements; 00287 00288 while (i--) 00289 { 00290 sp_cond_t *p; 00291 00292 get_dynamic(&m_conds, (gptr)&p, i); 00293 if (my_strnncoll(system_charset_info, 00294 (const uchar *)name->str, name->length, 00295 (const uchar *)p->name.str, p->name.length) == 0) 00296 { 00297 return p->val; 00298 } 00299 } 00300 if (!scoped && m_parent) 00301 return m_parent->find_cond(name, scoped); 00302 return NULL; 00303 }
Here is the call graph for this function:

Here is the caller graph for this function:

| my_bool sp_pcontext::find_cursor | ( | uint | offset, | |
| LEX_STRING * | n | |||
| ) |
Definition at line 406 of file sp_pcontext.cc.
References st_dynamic_array::elements, FALSE, find_cursor(), get_dynamic(), m_cursor_offset, m_cursors, m_parent, n, and TRUE.
00407 { 00408 if (m_cursor_offset <= offset && 00409 offset < m_cursor_offset + m_cursors.elements) 00410 { // This frame 00411 get_dynamic(&m_cursors, (gptr)n, offset - m_cursor_offset); 00412 return TRUE; 00413 } 00414 if (m_parent) 00415 return m_parent->find_cursor(offset, n); // Some previous frame 00416 return FALSE; // index out of bounds 00417 }
Here is the call graph for this function:

| my_bool sp_pcontext::find_cursor | ( | LEX_STRING * | name, | |
| uint * | poff, | |||
| my_bool | scoped = 0 | |||
| ) |
Definition at line 356 of file sp_pcontext.cc.
References st_dynamic_array::elements, FALSE, find_cursor(), get_dynamic(), m_cursor_offset, m_cursors, m_parent, my_strnncoll, n, name, system_charset_info, and TRUE.
Referenced by find_cursor(), sp_instr_cfetch::print(), sp_instr_cclose::print(), sp_instr_copen::print(), and sp_instr_cpush::print().
00357 { 00358 uint i= m_cursors.elements; 00359 00360 while (i--) 00361 { 00362 LEX_STRING n; 00363 00364 get_dynamic(&m_cursors, (gptr)&n, i); 00365 if (my_strnncoll(system_charset_info, 00366 (const uchar *)name->str, name->length, 00367 (const uchar *)n.str, n.length) == 0) 00368 { 00369 *poff= m_cursor_offset + i; 00370 return TRUE; 00371 } 00372 } 00373 if (!scoped && m_parent) 00374 return m_parent->find_cursor(name, poff, scoped); 00375 return FALSE; 00376 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool sp_pcontext::find_handler | ( | sp_cond_type * | cond | ) |
Definition at line 311 of file sp_pcontext.cc.
References cond, st_dynamic_array::elements, FALSE, get_dynamic(), m_handlers, sp_cond_type::number, p, sp_cond_type::state, strcmp(), and TRUE.
00312 { 00313 uint i= m_handlers.elements; 00314 00315 while (i--) 00316 { 00317 sp_cond_type_t *p; 00318 00319 get_dynamic(&m_handlers, (gptr)&p, i); 00320 if (cond->type == p->type) 00321 { 00322 switch (p->type) 00323 { 00324 case sp_cond_type_t::number: 00325 if (cond->mysqlerr == p->mysqlerr) 00326 return TRUE; 00327 break; 00328 case sp_cond_type_t::state: 00329 if (strcmp(cond->sqlstate, p->sqlstate) == 0) 00330 return TRUE; 00331 break; 00332 default: 00333 return TRUE; 00334 } 00335 } 00336 } 00337 return FALSE; 00338 }
Here is the call graph for this function:

| sp_label_t * sp_pcontext::find_label | ( | char * | name | ) |
Definition at line 252 of file sp_pcontext.cc.
References find_label(), m_label, m_parent, my_strcasecmp, sp_label::name, NULL, and system_charset_info.
Referenced by find_label().
00253 { 00254 List_iterator_fast<sp_label_t> li(m_label); 00255 sp_label_t *lab; 00256 00257 while ((lab= li++)) 00258 if (my_strcasecmp(system_charset_info, name, lab->name) == 0) 00259 return lab; 00260 00261 if (m_parent) 00262 return m_parent->find_label(name); 00263 return NULL; 00264 }
Here is the call graph for this function:

Here is the caller graph for this function:

| sp_variable_t * sp_pcontext::find_variable | ( | uint | offset | ) |
Definition at line 198 of file sp_pcontext.cc.
References st_dynamic_array::elements, find_variable(), get_dynamic(), m_parent, m_var_offset, m_vars, NULL, and p.
00199 { 00200 if (m_var_offset <= offset && offset < m_var_offset + m_vars.elements) 00201 { // This frame 00202 sp_variable_t *p; 00203 00204 get_dynamic(&m_vars, (gptr)&p, offset - m_var_offset); 00205 return p; 00206 } 00207 if (m_parent) 00208 return m_parent->find_variable(offset); // Some previous frame 00209 return NULL; // index out of bounds 00210 }
Here is the call graph for this function:

| sp_variable_t * sp_pcontext::find_variable | ( | LEX_STRING * | name, | |
| my_bool | scoped = 0 | |||
| ) |
Definition at line 169 of file sp_pcontext.cc.
References st_dynamic_array::elements, find_variable(), get_dynamic(), m_parent, m_pboundary, m_vars, my_strnncoll, name, NULL, p, and system_charset_info.
Referenced by find_variable(), sp_instr_set::print(), set_default(), and set_type().
00170 { 00171 uint i= m_vars.elements - m_pboundary; 00172 00173 while (i--) 00174 { 00175 sp_variable_t *p; 00176 00177 get_dynamic(&m_vars, (gptr)&p, i); 00178 if (my_strnncoll(system_charset_info, 00179 (const uchar *)name->str, name->length, 00180 (const uchar *)p->name.str, p->name.length) == 0) 00181 { 00182 return p; 00183 } 00184 } 00185 if (!scoped && m_parent) 00186 return m_parent->find_variable(name, scoped); 00187 return NULL; 00188 }
Here is the call graph for this function:

Here is the caller graph for this function:

| int sp_pcontext::get_current_case_expr_id | ( | ) | const [inline] |
Definition at line 261 of file sp_pcontext.h.
References st_dynamic_array::elements, get_dynamic(), and m_case_expr_id_lst.
00262 { 00263 int case_expr_id; 00264 00265 get_dynamic((DYNAMIC_ARRAY*)&m_case_expr_id_lst, (gptr) &case_expr_id, 00266 m_case_expr_id_lst.elements - 1); 00267 00268 return case_expr_id; 00269 }
Here is the call graph for this function:

| int sp_pcontext::get_num_case_exprs | ( | ) | const [inline] |
Definition at line 243 of file sp_pcontext.h.
References m_num_case_exprs.
Referenced by sp_rcontext::init(), and sp_pcontext().
00244 { 00245 return m_num_case_exprs; 00246 }
Here is the caller graph for this function:

| sp_label_t* sp_pcontext::last_label | ( | ) | [inline] |
Definition at line 282 of file sp_pcontext.h.
References last_label(), m_label, and m_parent.
Referenced by last_label().
00283 { 00284 sp_label_t *lab= m_label.head(); 00285 00286 if (!lab && m_parent) 00287 lab= m_parent->last_label(); 00288 return lab; 00289 }
Here is the call graph for this function:

Here is the caller graph for this function:

| uint sp_pcontext::max_cursor_index | ( | ) | [inline] |
Definition at line 354 of file sp_pcontext.h.
References st_dynamic_array::elements, m_cursors, and m_max_cursor_index.
Referenced by sp_rcontext::init(), and pop_context().
00355 { 00356 return m_max_cursor_index + m_cursors.elements; 00357 }
Here is the caller graph for this function:

| uint sp_pcontext::max_handler_index | ( | ) | [inline] |
Definition at line 328 of file sp_pcontext.h.
References m_context_handlers, and m_max_handler_index.
Referenced by sp_rcontext::init(), and pop_context().
00329 { 00330 return m_max_handler_index + m_context_handlers; 00331 }
Here is the caller graph for this function:

| uint sp_pcontext::max_var_index | ( | ) | [inline] |
Definition at line 154 of file sp_pcontext.h.
References m_max_var_index.
Referenced by sp_rcontext::init_var_items(), and sp_rcontext::init_var_table().
00155 { 00156 return m_max_var_index; 00157 }
Here is the caller graph for this function:

| void sp_pcontext::operator= | ( | sp_pcontext & | ) | [private] |
| sp_pcontext* sp_pcontext::parent_context | ( | ) | [inline] |
Definition at line 128 of file sp_pcontext.h.
References m_parent.
Referenced by diff_cursors(), and diff_handlers().
00129 { 00130 return m_parent; 00131 }
Here is the caller graph for this function:

| void sp_pcontext::pop_case_expr_id | ( | ) | [inline] |
Definition at line 255 of file sp_pcontext.h.
References m_case_expr_id_lst, and pop_dynamic().
00256 { 00257 pop_dynamic(&m_case_expr_id_lst); 00258 }
Here is the call graph for this function:

| void sp_pcontext::pop_cond | ( | uint | num | ) | [inline] |
Definition at line 305 of file sp_pcontext.h.
References m_conds, and pop_dynamic().
00306 { 00307 while (num--) 00308 pop_dynamic(&m_conds); 00309 }
Here is the call graph for this function:

| sp_pcontext * sp_pcontext::pop_context | ( | ) |
Definition at line 106 of file sp_pcontext.cc.
References m_max_cursor_index, m_max_handler_index, m_max_var_index, m_num_case_exprs, m_parent, max_cursor_index(), and max_handler_index().
00107 { 00108 m_parent->m_max_var_index+= m_max_var_index; 00109 00110 uint submax= max_handler_index(); 00111 if (submax > m_parent->m_max_handler_index) 00112 m_parent->m_max_handler_index= submax; 00113 00114 submax= max_cursor_index(); 00115 if (submax > m_parent->m_max_cursor_index) 00116 m_parent->m_max_cursor_index= submax; 00117 00118 if (m_num_case_exprs > m_parent->m_num_case_exprs) 00119 m_parent->m_num_case_exprs= m_num_case_exprs; 00120 00121 return m_parent; 00122 }
Here is the call graph for this function:

| sp_label_t* sp_pcontext::pop_label | ( | ) | [inline] |
Definition at line 292 of file sp_pcontext.h.
References m_label.
00293 { 00294 return m_label.pop(); 00295 }
| bool sp_pcontext::push_case_expr_id | ( | int | case_expr_id | ) | [inline] |
Definition at line 249 of file sp_pcontext.h.
References insert_dynamic(), and m_case_expr_id_lst.
00250 { 00251 return insert_dynamic(&m_case_expr_id_lst, (gptr) &case_expr_id); 00252 }
Here is the call graph for this function:

| void sp_pcontext::push_cond | ( | LEX_STRING * | name, | |
| sp_cond_type_t * | val | |||
| ) |
Definition at line 267 of file sp_pcontext.cc.
References insert_dynamic(), m_conds, name, p, and sql_alloc().
00268 { 00269 sp_cond_t *p= (sp_cond_t *)sql_alloc(sizeof(sp_cond_t)); 00270 00271 if (p) 00272 { 00273 p->name.str= name->str; 00274 p->name.length= name->length; 00275 p->val= val; 00276 insert_dynamic(&m_conds, (gptr)&p); 00277 } 00278 }
Here is the call graph for this function:

| sp_pcontext * sp_pcontext::push_context | ( | ) |
Definition at line 96 of file sp_pcontext.cc.
References m_children, List< T >::push_back(), and sp_pcontext().
00097 { 00098 sp_pcontext *child= new sp_pcontext(this); 00099 00100 if (child) 00101 m_children.push_back(child); 00102 return child; 00103 }
Here is the call graph for this function:

| void sp_pcontext::push_cursor | ( | LEX_STRING * | name | ) |
Definition at line 341 of file sp_pcontext.cc.
References st_dynamic_array::elements, insert_dynamic(), m_cursors, m_max_cursor_index, n, and name.
00342 { 00343 LEX_STRING n; 00344 00345 if (m_cursors.elements == m_max_cursor_index) 00346 m_max_cursor_index+= 1; 00347 n.str= name->str; 00348 n.length= name->length; 00349 insert_dynamic(&m_cursors, (gptr)&n); 00350 }
Here is the call graph for this function:

| void sp_pcontext::push_handler | ( | sp_cond_type_t * | cond | ) | [inline] |
Definition at line 319 of file sp_pcontext.h.
References cond, insert_dynamic(), and m_handlers.
00320 { 00321 insert_dynamic(&m_handlers, (gptr)&cond); 00322 }
Here is the call graph for this function:

| sp_label_t * sp_pcontext::push_label | ( | char * | name, | |
| uint | ip | |||
| ) |
Definition at line 236 of file sp_pcontext.cc.
References sp_label::ctx, sp_label::ip, m_label, sp_label::name, SP_LAB_IMPL, sql_alloc(), and sp_label::type.
00237 { 00238 sp_label_t *lab = (sp_label_t *)sql_alloc(sizeof(sp_label_t)); 00239 00240 if (lab) 00241 { 00242 lab->name= name; 00243 lab->ip= ip; 00244 lab->type= SP_LAB_IMPL; 00245 lab->ctx= this; 00246 m_label.push_front(lab); 00247 } 00248 return lab; 00249 }
Here is the call graph for this function:

| sp_variable_t * sp_pcontext::push_variable | ( | LEX_STRING * | name, | |
| enum enum_field_types | type, | |||
| sp_param_mode_t | mode | |||
| ) |
Definition at line 213 of file sp_pcontext.cc.
References current_var_count(), insert_dynamic(), m_max_var_index, m_vars, name, NULL, p, and sql_alloc().
00215 { 00216 sp_variable_t *p= (sp_variable_t *)sql_alloc(sizeof(sp_variable_t)); 00217 00218 if (!p) 00219 return NULL; 00220 00221 ++m_max_var_index; 00222 00223 p->name.str= name->str; 00224 p->name.length= name->length; 00225 p->type= type; 00226 p->mode= mode; 00227 p->offset= current_var_count(); 00228 p->dflt= NULL; 00229 insert_dynamic(&m_vars, (gptr)&p); 00230 00231 return p; 00232 }
Here is the call graph for this function:

| int sp_pcontext::register_case_expr | ( | ) | [inline] |
Definition at line 237 of file sp_pcontext.h.
References m_num_case_exprs.
00238 { 00239 return m_num_case_exprs++; 00240 }
| void sp_pcontext::retrieve_field_definitions | ( | List< create_field > * | field_def_lst | ) |
Definition at line 380 of file sp_pcontext.cc.
References ctx, st_dynamic_array::elements, get_dynamic(), m_children, m_vars, and List< T >::push_back().
Referenced by sp_rcontext::init_var_table().
00381 { 00382 /* Put local/context fields in the result list. */ 00383 00384 for (uint i = 0; i < m_vars.elements; ++i) 00385 { 00386 sp_variable_t *var_def; 00387 get_dynamic(&m_vars, (gptr) &var_def, i); 00388 00389 field_def_lst->push_back(&var_def->field_def); 00390 } 00391 00392 /* Put the fields of the enclosed contexts in the result list. */ 00393 00394 List_iterator_fast<sp_pcontext> li(m_children); 00395 sp_pcontext *ctx; 00396 00397 while ((ctx = li++)) 00398 ctx->retrieve_field_definitions(field_def_lst); 00399 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 195 of file sp_pcontext.h.
References find_variable(), and p.
00196 { 00197 sp_variable_t *p= find_variable(i); 00198 00199 if (p) 00200 p->dflt= it; 00201 }
Here is the call graph for this function:

| void sp_pcontext::set_type | ( | uint | i, | |
| enum enum_field_types | type | |||
| ) | [inline] |
Definition at line 185 of file sp_pcontext.h.
References find_variable(), and p.
00186 { 00187 sp_variable_t *p= find_variable(i); 00188 00189 if (p) 00190 p->type= type; 00191 }
Here is the call graph for this function:

Definition at line 178 of file sp_pcontext.h.
References m_var_offset.
00179 { 00180 return m_var_offset + i; 00181 }
DYNAMIC_ARRAY sp_pcontext::m_case_expr_id_lst [private] |
Definition at line 411 of file sp_pcontext.h.
Referenced by destroy(), get_current_case_expr_id(), pop_case_expr_id(), push_case_expr_id(), and sp_pcontext().
List<sp_pcontext> sp_pcontext::m_children [private] |
Definition at line 418 of file sp_pcontext.h.
Referenced by destroy(), push_context(), retrieve_field_definitions(), and sp_pcontext().
DYNAMIC_ARRAY sp_pcontext::m_conds [private] |
Definition at line 412 of file sp_pcontext.h.
Referenced by destroy(), find_cond(), pop_cond(), push_cond(), and sp_pcontext().
uint sp_pcontext::m_context_handlers [protected] |
Definition at line 381 of file sp_pcontext.h.
Referenced by add_handlers(), diff_handlers(), and max_handler_index().
uint sp_pcontext::m_cursor_offset [private] |
Definition at line 398 of file sp_pcontext.h.
Referenced by current_cursor_count(), find_cursor(), and sp_pcontext().
DYNAMIC_ARRAY sp_pcontext::m_cursors [private] |
Definition at line 413 of file sp_pcontext.h.
Referenced by current_cursor_count(), destroy(), diff_cursors(), find_cursor(), max_cursor_index(), push_cursor(), and sp_pcontext().
DYNAMIC_ARRAY sp_pcontext::m_handlers [private] |
Definition at line 414 of file sp_pcontext.h.
Referenced by destroy(), find_handler(), push_handler(), and sp_pcontext().
List<sp_label_t> sp_pcontext::m_label [private] |
Definition at line 416 of file sp_pcontext.h.
Referenced by destroy(), find_label(), last_label(), pop_label(), push_label(), and sp_pcontext().
uint sp_pcontext::m_max_cursor_index [protected] |
Definition at line 379 of file sp_pcontext.h.
Referenced by max_cursor_index(), pop_context(), and push_cursor().
uint sp_pcontext::m_max_handler_index [protected] |
uint sp_pcontext::m_max_var_index [protected] |
Definition at line 376 of file sp_pcontext.h.
Referenced by max_var_index(), pop_context(), push_variable(), and sp_pcontext().
int sp_pcontext::m_num_case_exprs [private] |
Definition at line 408 of file sp_pcontext.h.
Referenced by get_num_case_exprs(), pop_context(), register_case_expr(), and sp_pcontext().
sp_pcontext* sp_pcontext::m_parent [private] |
Definition at line 385 of file sp_pcontext.h.
Referenced by find_cond(), find_cursor(), find_label(), find_variable(), last_label(), parent_context(), and pop_context().
uint sp_pcontext::m_pboundary [private] |
Definition at line 406 of file sp_pcontext.h.
Referenced by declare_var_boundary(), and find_variable().
uint sp_pcontext::m_var_offset [private] |
Definition at line 396 of file sp_pcontext.h.
Referenced by current_var_count(), find_variable(), sp_pcontext(), and var_context2runtime().
DYNAMIC_ARRAY sp_pcontext::m_vars [private] |
Definition at line 410 of file sp_pcontext.h.
Referenced by context_var_count(), current_var_count(), destroy(), find_variable(), push_variable(), retrieve_field_definitions(), and sp_pcontext().
1.4.7

