Gop crasher fix
This fixes a crasher and consistency check failure reported in #390.
A few questions before merging:
- Why was
glist_getcanvasbeing used indo_create_abstractionof s_loader.c? I changed it tocanvas_getrootforsince 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_editoringlist_doreloadfixes this particular bug. The reason that was added is because thecanvas_visbehavior has a confusing number of conditionals. Those conditionals make it possible to callcanvas_viswith 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?