diff options
-rw-r--r-- | packages/patches/allow_recursive_calls_of_new_anything-0.41.4.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/packages/patches/allow_recursive_calls_of_new_anything-0.41.4.patch b/packages/patches/allow_recursive_calls_of_new_anything-0.41.4.patch new file mode 100644 index 00000000..d2ea86e2 --- /dev/null +++ b/packages/patches/allow_recursive_calls_of_new_anything-0.41.4.patch @@ -0,0 +1,33 @@ +Index: m_class.c +=================================================================== +--- m_class.c (Revision 9979) ++++ m_class.c (Arbeitskopie) +@@ -522,6 +522,7 @@ + return (gensym(namebuf)); + } + ++#define MAXOBJDEPTH 1000 + static int tryingalready; + + void canvas_popabstraction(t_canvas *x); +@@ -537,14 +538,17 @@ + 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; |