From 51ff4a5d695335194505ace4d39c5d3c4e65a002 Mon Sep 17 00:00:00 2001 From: justvanrossum Date: Wed, 29 Jan 2020 11:05:01 +0100 Subject: [PATCH] Move ensureDecompiled() calls to mergeObjects(). This makes more sense, but still needs the hasattr checks. --- Lib/fontTools/varLib/merger.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Lib/fontTools/varLib/merger.py b/Lib/fontTools/varLib/merger.py index d3adfe424..f298b64d8 100644 --- a/Lib/fontTools/varLib/merger.py +++ b/Lib/fontTools/varLib/merger.py @@ -60,6 +60,11 @@ class Merger(object): return _default def mergeObjects(self, out, lst, exclude=()): + if hasattr(out, "ensureDecompiled"): + out.ensureDecompiled() + for item in lst: + if hasattr(item, "ensureDecompiled"): + item.ensureDecompiled() keys = sorted(vars(out).keys()) assert all(keys == sorted(vars(v).keys()) for v in lst), \ (keys, [sorted(vars(v).keys()) for v in lst]) @@ -87,11 +92,6 @@ class Merger(object): def mergeThings(self, out, lst): try: - if hasattr(out, "ensureDecompiled"): - out.ensureDecompiled() - for item in lst: - if hasattr(item, "ensureDecompiled"): - item.ensureDecompiled() assert allEqualTo(out, lst, type), (out, lst) mergerFunc = self.mergersFor(out).get(None, None) if mergerFunc is not None: