![]() |
NEURON
|
#include <../../nrnconf.h>#include <stdlib.h>#include <classreg.h>#include "hocstr.h"#include "parse.hpp"#include "hocparse.h"#include "code.h"#include "hocassrt.h"#include "hoclist.h"#include "nrnmpi.h"#include "nrnfilewrap.h"#include <nrnpython_config.h>Go to the source code of this file.
Classes | |
| union | Templatedatum |
| struct | newobj1_err_t |
Macros | |
| #define | PDEBUG 0 |
| #define | PUBLIC_TYPE 1 |
| #define | EXTERNAL_TYPE 2 |
| #define | NTEMPLATESTACK 20 |
| #define | pushtemplatesym(arg) |
| #define | pushtemplatesymlist(arg) |
| #define | pushtemplatei(arg) |
| #define | pushtemplateodata(arg) |
| #define | pushtemplateo(arg) |
| #define | OBJ_STACK_SIZE 10 |
| #define | NEWOBJ1_ERR_SIZE 32 /* starts with this size, and doubles on overflow */ |
| If hoc_newob1 fails after creating a new object, that object needs to be unreffed. More... | |
| #define | objectpath hoc_objectpath_impl |
| #define | pathprepend hoc_path_prepend |
Variables | |
| int | hoc_print_first_instance = 1 |
| int | hoc_max_builtin_class_id = -1 |
| static Symbol * | hoc_obj_ |
| static int | icntobjectdata = 0 |
| Object * | hoc_thisobject |
| Objectdata * | hoc_objectdata = (Objectdata*) 0 |
| Objectdata * | hoc_top_level_data |
| static int | icnttoplevel |
| int | hoc_in_template = 0 |
| static Templatedatum | templatestack [NTEMPLATESTACK] |
| static Templatedatum * | templatestackp = templatestack |
| static Object * | obj_stack_ [OBJ_STACK_SIZE+1] |
| static int | obj_stack_loc |
| void(* | oc_jump_target_ )() |
| static int | newobj1_err_index_ |
| static int | newobj1_err_size_ |
| static newobj1_err_t * | newobj1_err_ |
| static Object * | gui_redirect_obj_ |
| static int | template_id |
| #define EXTERNAL_TYPE 2 |
Definition at line 34 of file hoc_oop.cpp.
| #define NEWOBJ1_ERR_SIZE 32 /* starts with this size, and doubles on overflow */ |
If hoc_newob1 fails after creating a new object, that object needs to be unreffed.
To handle the case of constructors themselves creating new objects before the error or intervening recovery of error by a callee recovering from execerror, the incomplete new object is put on a stack along with the current longjump target, and removed from the stack when the object is complete. There could be a problem if the destructor doesn't work with a partially constructed object. In case of a execerror before newobj1 completion, all partially constructed objects with a longjump handle equal to the current longjump handle are unreffed.
Definition at line 506 of file hoc_oop.cpp.
| #define NTEMPLATESTACK 20 |
Definition at line 202 of file hoc_oop.cpp.
| #define OBJ_STACK_SIZE 10 |
Definition at line 239 of file hoc_oop.cpp.
| #define objectpath hoc_objectpath_impl |
Definition at line 1739 of file hoc_oop.cpp.
| #define pathprepend hoc_path_prepend |
Definition at line 1740 of file hoc_oop.cpp.
| #define PDEBUG 0 |
Definition at line 15 of file hoc_oop.cpp.
| #define PUBLIC_TYPE 1 |
Definition at line 33 of file hoc_oop.cpp.
| #define pushtemplatei | ( | arg | ) |
Definition at line 219 of file hoc_oop.cpp.
| #define pushtemplateo | ( | arg | ) |
Definition at line 225 of file hoc_oop.cpp.
| #define pushtemplateodata | ( | arg | ) |
Definition at line 222 of file hoc_oop.cpp.
| #define pushtemplatesym | ( | arg | ) |
Definition at line 213 of file hoc_oop.cpp.
| #define pushtemplatesymlist | ( | arg | ) |
Definition at line 216 of file hoc_oop.cpp.
Definition at line 683 of file hoc_oop.cpp.
Definition at line 782 of file hoc_oop.cpp.
Definition at line 715 of file hoc_oop.cpp.
Definition at line 229 of file hoc_oop.cpp.
| void class2oc | ( | const char * | name, |
| void *(*)(Object *) | cons, | ||
| void(*)(void *) | destruct, | ||
| Member_func * | m, | ||
| int(*)(void **) | checkpoint, | ||
| Member_ret_obj_func * | mobjret, | ||
| Member_ret_str_func * | strret | ||
| ) |
Definition at line 1560 of file hoc_oop.cpp.
|
static |
Definition at line 1877 of file hoc_oop.cpp.
Definition at line 1623 of file hoc_oop.cpp.
Definition at line 1941 of file hoc_oop.cpp.
Definition at line 1960 of file hoc_oop.cpp.
Definition at line 1982 of file hoc_oop.cpp.
Definition at line 2001 of file hoc_oop.cpp.
Definition at line 1362 of file hoc_oop.cpp.
Definition at line 1486 of file hoc_oop.cpp.
Definition at line 845 of file hoc_oop.cpp.
Definition at line 903 of file hoc_oop.cpp.
Definition at line 1608 of file hoc_oop.cpp.
Definition at line 1525 of file hoc_oop.cpp.
Definition at line 356 of file hoc_oop.cpp.
Definition at line 1635 of file hoc_oop.cpp.
Definition at line 44 of file hoc_oop.cpp.
Definition at line 850 of file hoc_oop.cpp.
|
static |
Definition at line 2007 of file hoc_oop.cpp.
Definition at line 457 of file hoc_oop.cpp.
Definition at line 655 of file hoc_oop.cpp.
Definition at line 565 of file hoc_oop.cpp.
| void hoc_newobj1_err | ( | ) |
unref partially constructed objects controlled by current longjump handle
Definition at line 546 of file hoc_oop.cpp.
Definition at line 640 of file hoc_oop.cpp.
Definition at line 651 of file hoc_oop.cpp.
| void hoc_ob_check | ( | int | type | ) |
Definition at line 1673 of file hoc_oop.cpp.
Definition at line 1326 of file hoc_oop.cpp.
Definition at line 1369 of file hoc_oop.cpp.
Definition at line 999 of file hoc_oop.cpp.
Definition at line 1296 of file hoc_oop.cpp.
Definition at line 947 of file hoc_oop.cpp.
Definition at line 273 of file hoc_oop.cpp.
Definition at line 243 of file hoc_oop.cpp.
Definition at line 265 of file hoc_oop.cpp.
Definition at line 888 of file hoc_oop.cpp.
| Objectdata* hoc_objectdata_restore | ( | Objectdata * | obdsav | ) |
Definition at line 143 of file hoc_oop.cpp.
| Objectdata* hoc_objectdata_save | ( | void | ) |
Definition at line 133 of file hoc_oop.cpp.
Definition at line 855 of file hoc_oop.cpp.
Definition at line 812 of file hoc_oop.cpp.
Definition at line 152 of file hoc_oop.cpp.
Definition at line 129 of file hoc_oop.cpp.
| int hoc_resize_toplevel | ( | int | more | ) |
Definition at line 292 of file hoc_oop.cpp.
Definition at line 1468 of file hoc_oop.cpp.
| Object* nrn_get_gui_redirect_obj | ( | ) |
Definition at line 711 of file hoc_oop.cpp.
| void* nrn_get_hoc_jmp | ( | ) |
| void* nrn_get_oji | ( | ) |
Return handle for the current longjump buffer info.
Valid until finish is called on the oji_ instance.
Definition at line 129 of file ocjump.cpp.
Definition at line 1752 of file hoc_oop.cpp.
| void oc_restore_hoc_oop | ( | Object ** | a1, |
| Objectdata ** | a2, | ||
| int * | a4, | ||
| Symlist ** | a5 | ||
| ) |
Definition at line 446 of file hoc_oop.cpp.
| void oc_save_hoc_oop | ( | Object ** | a1, |
| Objectdata ** | a2, | ||
| int * | a4, | ||
| Symlist ** | a5 | ||
| ) |
Definition at line 430 of file hoc_oop.cpp.
| void pathprepend | ( | char * | path, |
| const char * | name, | ||
| const char * | indx | ||
| ) |
Definition at line 1742 of file hoc_oop.cpp.
| void pop_newobj1_err | ( | ) |
pop the now fully constructed object
Definition at line 540 of file hoc_oop.cpp.
|
static |
Definition at line 206 of file hoc_oop.cpp.
save partially constructed object and controlling longjump handle
Definition at line 520 of file hoc_oop.cpp.
|
static |
Definition at line 710 of file hoc_oop.cpp.
| int hoc_in_template = 0 |
Definition at line 126 of file hoc_oop.cpp.
| int hoc_max_builtin_class_id = -1 |
Definition at line 40 of file hoc_oop.cpp.
|
static |
Definition at line 42 of file hoc_oop.cpp.
| int hoc_print_first_instance = 1 |
Definition at line 38 of file hoc_oop.cpp.
| Object* hoc_thisobject |
Definition at line 122 of file hoc_oop.cpp.
| Objectdata* hoc_top_level_data |
Definition at line 124 of file hoc_oop.cpp.
|
static |
Definition at line 121 of file hoc_oop.cpp.
|
static |
Definition at line 125 of file hoc_oop.cpp.
|
static |
Definition at line 517 of file hoc_oop.cpp.
|
static |
Definition at line 515 of file hoc_oop.cpp.
|
static |
Definition at line 516 of file hoc_oop.cpp.
|
static |
Definition at line 240 of file hoc_oop.cpp.
|
static |
Definition at line 241 of file hoc_oop.cpp.
|
static |
Definition at line 1484 of file hoc_oop.cpp.
|
static |
Definition at line 203 of file hoc_oop.cpp.
|
static |
Definition at line 204 of file hoc_oop.cpp.