[PD-dev] [ pure-data-Bugs-2251387 ] declare of abstractions is hiddenly saved in parent patches

SourceForge.net noreply at sourceforge.net
Sat Dec 26 08:59:28 CET 2009


Bugs item #2251387, was opened at 2008-11-09 14:59
Message generated for change (Comment added) made by lukeiannini
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478070&aid=2251387&group_id=55736

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: puredata
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Roman Haefeli (reduzent)
Assigned to: Miller Puckette (millerpuckette)
Summary: declare of abstractions is hiddenly saved in parent patches

Initial Comment:
if a patch containing an abstraction or a child of an
abstraction containing a [declare] object is saved, the patch is saved with a hidden declare line:

#X declare -stdlib extra/list-abs;

but there is no line:

#X obj 8 8 declare -stdlib extra/list-abs;

and therefore no object [declare] appears in the patch, when opening it afterwards.


how to reproduce the problem:

1) create 'abstraction.pd' containing:
     [declare -stdpath  extra/list-abs]
     [list-clip]
   save it

2) create 'patch.pd' containing:
     [abstraction]
     [list-clip]
   save it

3) close and re-open 'patch.pd'
     [list-clip] is instantiated, although there is no
     [declare] visible in the patch.
   opening 'patch.pd' with a text editor shows the
   following line:

   #X declare -stdlib extra/list-abs;


this was tested on 0.42.0test5


----------------------------------------------------------------------

Comment By: Luke Iannini (lukeiannini)
Date: 2009-12-26 00:59

Message:
Ah, here's the hidden field.  So:
Just wanted to point out that this is actually worse than originally
reported, since if you go up another level...
4) create 'superpatch.pd' containing:
[patch]
[patch]
save it

You'll see that not only have the viral [declare]s infected the the
/superparent/ as well (accumulating and accumulating on each superparent),
but that /each/ of the [patch] instances infects the parent, so you see
#X declare -stdlib extra/list-abs;
#X declare -stdlib extra/list-abs;

at the top of the superpatch.  This is a very trivial example, but in
large patches with lots of abstractions you can end up with thousands and
thousands of declares in the top level patch, eventually busting the
patch-handling of Pd (and slowing load times horrifically).

This was recently tested on the 0.42.5 and 0.43 autobuilds. 

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478070&aid=2251387&group_id=55736




More information about the Pd-dev mailing list