Gop crasher fix
This fixes a crasher and consistency check failure reported in #390.
A few questions before merging:
- Why was
glist_getcanvas
being used indo_create_abstraction
of s_loader.c? I changed it tocanvas_getrootfor
since I don't see why the abstraction constructor should know anything about GUI display in order to load the patch file from the proper path. (And indeed, that call will set the wrong canvas path in edge cases like these as well as cases of explicit dynamic patching.) - The addition of an explicit call of
canvas_create_editor
inglist_doreload
fixes this particular bug. The reason that was added is because thecanvas_vis
behavior has a confusing number of conditionals. Those conditionals make it possible to callcanvas_vis
with a flag of "1" without actually creating an editor in edge cases like these. However, it's unclear to me whether those conditionals themselves address other edge case bugs. So do we try to refactor canvas_vis, or just leave this particular bug fix and wait for more bug reports in the future?