Skip to content

Gop crasher fix

Jonathan Wilkes requested to merge gop-crasher-fix into master

This fixes a crasher and consistency check failure reported in #390.

A few questions before merging:

  1. Why was glist_getcanvas being used in do_create_abstraction of s_loader.c? I changed it to canvas_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.)
  2. The addition of an explicit call of canvas_create_editor in glist_doreload fixes this particular bug. The reason that was added is because the canvas_vis behavior has a confusing number of conditionals. Those conditionals make it possible to call canvas_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?

Merge request reports