return early if a package's stash is empty in get_method_map
Jesse Luehrs [Sat, 25 Apr 2009 00:43:45 +0000 (19:43 -0500)]
xs/Class.xs

index 32bbde6..5bd9fae 100644 (file)
@@ -88,6 +88,9 @@ get_method_map(self)
         HV *const obj        = (HV *)SvRV(self);
         SV *const class_name = HeVAL( hv_fetch_ent(obj, KEY_FOR(package), 0, HASH_FOR(package)) );
         HV *const stash      = gv_stashsv(class_name, 0);
+        if (!stash) {
+            return;
+        }
         UV  const current    = mop_check_package_cache_flag(aTHX_ stash);
         SV *const cache_flag = HeVAL( hv_fetch_ent(obj, KEY_FOR(package_cache_flag), TRUE, HASH_FOR(package_cache_flag)));
         SV *const map_ref    = HeVAL( hv_fetch_ent(obj, KEY_FOR(methods), TRUE, HASH_FOR(methods)));