diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2011-10-09 16:36:37 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2011-10-09 16:36:37 +0000 |
commit | 21c068f1916330e90f814bed461fe0821d1665ec (patch) | |
tree | 949b73696fff09a44b8d3eb01b70bae7174cbd14 /pd/src/m_class.c | |
parent | bf8ced1efe1a032342e864edc635fa4e2676670d (diff) |
checked in pd-0.43-0.src.tar.gz
svn path=/trunk/; revision=15557
Diffstat (limited to 'pd/src/m_class.c')
-rw-r--r-- | pd/src/m_class.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/pd/src/m_class.c b/pd/src/m_class.c index 93d9c71b..0c67d34f 100644 --- a/pd/src/m_class.c +++ b/pd/src/m_class.c @@ -522,6 +522,7 @@ static t_symbol *addfileextent(t_symbol *s) return (gensym(namebuf)); } +#define MAXOBJDEPTH 1000 static int tryingalready; void canvas_popabstraction(t_canvas *x); @@ -537,14 +538,17 @@ void new_anything(void *dummy, t_symbol *s, int argc, t_atom *argv) t_pd *current; int fd; char dirbuf[MAXPDSTRING], *nameptr; - if (tryingalready) return; + if (tryingalready>MAXOBJDEPTH){ + error("maximum object loading depth %d reached", MAXOBJDEPTH); + return; + } newest = 0; class_loadsym = s; if (sys_load_lib(canvas_getcurrent(), s->s_name)) { - tryingalready = 1; + tryingalready++; typedmess(dummy, s, argc, argv); - tryingalready = 0; + tryingalready--; return; } class_loadsym = 0; |