[PD-dev] trying to understand class_new

Boštjan Jerko bojerko at gmail.com
Sun Mar 22 09:13:23 CET 2020


Hi Christof,

the problem is that I don’t really know what happens but it goes something like that:

calling pd_init -> pd_init_systems -> conf_init -> x_connective_setup -> pdint_setup

and then in function class_new vp is empty so while (*vp) doesn’t go through it and after exiting class_new the microcontroller stops with a hard error. 
So maybe the question is really - should the vp be empty and if not - why is that happening?

B.

> On 21 Mar 2020, at 13:58, Christof Ressi <info at christofressi.com> wrote:
> 
> Hi,
> 
>> The code compiles but I get the error when running in the pdint_setup where pdint_new in class_new breaks with an error.
>> My idea is to first try to understand the code hence my question:
> I think first you should post the error you get ;-) Maybe the problem is trivially solved without having to look at  code for class_new() at all.
>> What does class_new do?
> It creates a new Pd class (t_pd). The class contains all the methods and some metadata. It also registers a creator function in pd_objectmaker, which is the factory object for all classes.
> 
> When you type "[foo 0]" you really send a message "obj <x> <y> foo 0" to the canvas, which in turn sends a message "foo 0" to pd_objectmaker, which finally returns a newly created instance (given that it can find a creator method for "foo").
> 
> But again, I think the problem is likely trivial and those implementation details shouldn't concern you, unless you want to learn about Pd internals, of course :-)
> 
> Christof
> 
> On 21.03.2020 13:20, Boštjan Jerko wrote:
>> Hi,
>> 
>> I’m trying to port libpd to stm32. I don’t need gui so working only on connecting pd script to the output (which is DAC from stm32 in my case).
>> The code compiles but I get the error when running in the pdint_setup where pdint_new in class_new breaks with an error.
>> My idea is to first try to understand the code hence my question:
>> What does class_new do?
>> 
>> My guess is connecting puredata command with a function in C. Am I correct or completely missing the point?
>> 
>> Thanks.
>> 
>> B.
>> 
>> 
>> _______________________________________________
>> Pd-dev mailing list
>> Pd-dev at lists.iem.at
>> https://lists.puredata.info/listinfo/pd-dev
> 
> 
> 
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at lists.iem.at
> https://lists.puredata.info/listinfo/pd-dev






More information about the Pd-dev mailing list