You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Please tell us what you were doing! You can include code and files by drag and dropping them into the text area.
Thanks to the magic of obex, we can retrieve object state via get<attribute_name> messages. The machinery for this ultimately calls our own custom getters.
When we have a buffer attribute that hasn't been set, that getter is essentially returning a null pointer wrapped up in some atom machinery, causing Max to crash downstream when it tries to dereference the pointer.
It crashes also in the latest public release... if I understand the problem, we don't deal with unattributed buffers well. now, a native-yet-unacceptable solution for that is to do like native objects and bail at instantiation (like peek~) but it would make a lot of object useless...
our current code is dealt well with by attrui (i.e. source ) so I reckon if there is a flag in the returned atom that we could poke at to know it is invalid/null pointing?
Yes, no need to bail – we only need to fix this specific behaviour. It's also not a question of us querying a returned atom because this is Max choking on an atom that we're returning.
This is resolvable with some experimentation I think. We can try (1) returning ac = 0 and a null av and see if that works or (2) just returning gensym("") for unassigned buffers.
Please tell us what you were doing! You can include code and files by drag and dropping them into the text area.
Thanks to the magic of obex, we can retrieve object state via
get<attribute_name>
messages. The machinery for this ultimately calls our own custom getters.When we have a buffer attribute that hasn't been set, that getter is essentially returning a null pointer wrapped up in some atom machinery, causing Max to crash downstream when it tries to dereference the pointer.
flucoma-max/source/include/FluidMaxWrapper.hpp
Lines 1096 to 1109 in 38b6525
Repro:
What was the expected result?
At a minimum, we don't cause Max to crash.
Open question on what the output should be for an unset buffer attribute in this case: a zero length string? Some magic string like
<unknown>
?What was the actual result?
Max crashes, in a debug build at any rate: it might not crash in release builds, but that shouldn't be a comfort.
What operating system were you using?
Mac
Operating system version
Ventura 13.5.2
FluCoMa Version
Custom build 1.0.6+sha.38b6525.core.sha.98bdc5e3
The text was updated successfully, but these errors were encountered: