From a0c51af81d13b2bdb31cb80e4065c370c10d8a5b Mon Sep 17 00:00:00 2001 From: John Colvin Date: Fri, 11 Oct 2019 13:34:04 +0100 Subject: [PATCH] fix catching derived exceptions across dll boundaries --- src/rt/cast_.d | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rt/cast_.d b/src/rt/cast_.d index e76ed8bd72..3b46cd1395 100644 --- a/src/rt/cast_.d +++ b/src/rt/cast_.d @@ -112,17 +112,17 @@ int _d_isbaseof2(ClassInfo oc, ClassInfo c, ref size_t offset) int _d_isbaseof(ClassInfo oc, ClassInfo c) { - if (oc is c) + if (oc.compareClassInfo(c)) return true; do { - if (oc.base is c) + if (oc.base.compareClassInfo(c)) return true; foreach (iface; oc.interfaces) { - if (iface.classinfo is c || _d_isbaseof(iface.classinfo, c)) + if (iface.classinfo.compareClassInfo(c) || _d_isbaseof(iface.classinfo, c)) return true; }