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
The `obs_frontend_remove_canvas` is called, the
destructor of OBS::Canvas calls
obs_canvas_release() on an object which is
both allocated on the heap and used as reference.
This causes the `canvases` collection on the main
window to become corrupt, and crash the next time
you try to add another frontend canvas.
This PR modifies the canvases vector to be
represented as a map of obs_canvas_t* to a
shared pointer to OBS::Canvas.
This will preserve both the OBS::Canvas manager
instance, and pointer to obs_canvas_t* for
reference by obs_frontend_canvas_remove(),
ensuring that the right objects will be used
when called upon.
0 commit comments