Skip to content

Commit 6deedab

Browse files
committed
Do not swallow previewer crasher errors
See #669
1 parent 369d965 commit 6deedab

File tree

6 files changed

+21
-11
lines changed

6 files changed

+21
-11
lines changed

Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,11 @@ clean:
6565
rm -f src/Library/**/libworkbenchcode.so
6666
rm -f src/Library/**/biome.json
6767
rm -rf src/Library/**/__pycache__
68+
rm re.sonny.Workbench.Devel.flatpak
69+
rm re.sonny.Workbench.flatpak
70+
rm -rf _build
71+
rm -rf .flatpak
72+
rm -rf .flatpak-builder
73+
rm -rf flatpak
74+
rm -rf flatpak-builder
75+
rm -rf repo

src/Previewer/Previewer.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ export default function Previewer({
192192

193193
if (settings.get_boolean("safe-mode")) {
194194
// console.time("detectCrash");
195-
if (await detectCrash(text, target_id)) return;
195+
const crashed = await detectCrash(text, target_id);
196+
if (crashed) return;
196197
// console.timeEnd("detectCrash");
197198
}
198199

src/Previewer/crasher.vala

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
public void main (string[] args) {
2-
Adw.init ();
2+
Adw.init ();
33

44
var builder = new Gtk.Builder();
55
var output = new Gtk.Window ();
66

7-
try {
8-
builder.add_from_string(args[1], -1);
7+
try {
8+
builder.add_from_string(args[1], -1);
99
var object = builder.get_object(args[2]) as Gtk.Widget;
1010
output.set_child(object);
11-
12-
// We are only interested in crashes here
13-
// Previewer.js will handle errors
14-
} catch {}
11+
} catch (Error e) {
12+
GLib.error(e.message);
13+
}
1514
}

src/Previewer/utils.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,9 @@ export async function detectCrash(str, object_id) {
142142
const flags = Gio.SubprocessFlags.NONE;
143143
const proc = Gio.Subprocess.new(["workbench-crasher", str, object_id], flags);
144144

145-
const success = await proc.wait_check_async(null).catch((_err) => false);
145+
const success = await proc.wait_check_async(null).catch((_err) => {
146+
return false;
147+
});
146148
return !success;
147149
}
148150

src/libworkbench/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ libworkbench_gir = gnome.generate_gir(libworkbench,
105105
)
106106

107107
# Vala API Bindings
108-
libworkbench_vapi = gnome.generate_vapi(libworkbench_api_name,
108+
gnome.generate_vapi(libworkbench_api_name,
109109
sources: libworkbench_gir[0],
110110
packages: ['gio-2.0', 'gtk4', 'gtksourceview-5'],
111111
install: true,

src/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ subdir('Previewer')
3838
subdir('langs/python')
3939

4040
gjspack = find_program('../troll/gjspack/bin/gjspack')
41-
gresource = custom_target('gjspack',
41+
custom_target('gjspack',
4242
input: ['main.js', '../po/POTFILES'],
4343
output: app_id + '.src.gresource',
4444
command: [

0 commit comments

Comments
 (0)