1 #include <../../nrnconf.h>
15 for (
Item* q1 = sl->
next; q1 != sl; q1 = q2) {
17 if (q1->element.sec->prop ==
nullptr) {
21 if (q1->element.sec ==
sec) {
32 for (
Item* q1 = sl->
next; q1 != sl; q1 = q2) {
34 if (q1->element.sec->prop ==
nullptr) {
83 hoc_execerror(
"Too many parameters. SectionList.append takes 0 or 1 arguments", (
char*) 0);
90 for (
Section* ch =
sec->child; ch; ch = ch->sibling) {
106 const Item* end = sl;
130 for (
s =
sec;
s->parentsec;
s =
s->parentsec) {
142 if (!
sec->parentsec) {
178 sl =
static_cast<List*
>(
v);
180 for (
Item*
q = sl->next;
q != sl;
q = q1) {
183 if (
s->volatile_mark) {
202 if (
s->volatile_mark++) {
225 Printf(
"%s\n", secname(s));
235 for (
Item* q1 = sl->
next; q1 != sl; q1 = q2) {
237 if (q1->element.sec->prop ==
nullptr) {
264 #define relative(pc) (pc + (pc)->i)
269 hoc_execerror(
"nullptr object is not a SectionList",
nullptr);
const char * secname(Section *sec)
name of section (for use in error messages)
void nrn_pushsec(Section *sec)
void forall_section(void)
void class2oc(const char *, ctor_f *cons, dtor_f *destruct, Member_func *, Member_ret_obj_func *, Member_ret_str_func *)
HocReturnType hoc_return_type_code
void check_obj_type(Object *obj, const char *type_name)
void hoc_l_delete(hoc_Item *)
Object ** hoc_objgetarg(int)
#define ITERATE(itm, lst)
void freelist(List *list)
List * newlist()
The following routines support the concept of a list.
void hoc_execerror(const char *s1, const char *s2)
void hoc_warning(const char *s1, const char *s2)
void section_ref(Section *)
void section_unref(Section *)
Symbol * nrnpy_pyobj_sym_
Object ** hoc_objpop()
Pop pointer to object pointer and return top elem from stack.
void hoc_tobj_unref(Object **)
Item * lappendsec(List *list, Section *sec)
static double subtree(void *v)
static double seclist_remove(void *v)
static void children1(List *sl, Section *sec)
static double printnames(void *v)
static double allroots(void *v)
bool seclist_iterate_remove_until(List *sl, F fun, const Section *sec)
double seclist_size(void *v)
static Member_func members[]
Section *(* nrnpy_o2sec_p_)(Object *o)
static double unique(void *v)
static double children(void *v)
static void * constructor(Object *ho)
static void subtree1(List *sl, Section *sec)
static void destructor(void *v)
void(* nrnpy_sectionlist_helper_)(List *, Object *)=0
void lvappendsec_and_ref(void *sl, Section *sec)
static double contains(void *v)
static void check(Object *ob)
void SectionList_reg(void)
void seclist_iterate_remove(List *sl, F fun)
static double wholetree(void *v)
void forall_sectionlist()
static double append(void *v)
Section * nrn_secarg(int i)
void *(* constructor)(struct Object *)