[svn:parrot] r48861 - trunk/src

chromatic at svn.parrot.org chromatic at svn.parrot.org
Wed Sep 8 18:50:21 UTC 2010


Author: chromatic
Date: Wed Sep  8 18:50:21 2010
New Revision: 48861
URL: https://trac.parrot.org/parrot/changeset/48861

Log:
[ns] Optimized NameSpace type check.

Modified:
   trunk/src/namespace.c

Modified: trunk/src/namespace.c
==============================================================================
--- trunk/src/namespace.c	Wed Sep  8 18:50:18 2010	(r48860)
+++ trunk/src/namespace.c	Wed Sep  8 18:50:21 2010	(r48861)
@@ -131,9 +131,12 @@
     ARGIN(STRING *key), int flags)
 {
     ASSERT_ARGS(internal_ns_keyed_str)
-    PMC * const ns = VTABLE_get_pmc_keyed_str(interp, base_ns, key);
+    PMC    * const ns        = VTABLE_get_pmc_keyed_str(interp, base_ns, key);
+    STRING * const namespace = CONST_STRING(interp, "NameSpace");
 
-    if (!PMC_IS_NULL(ns) && VTABLE_isa(interp, ns, CONST_STRING(interp, "NameSpace")))
+    if (!PMC_IS_NULL(ns)
+    && (ns->vtable->base_type == enum_class_NameSpace
+     || VTABLE_isa(interp, ns, namespace)))
         return ns;
 
     return internal_ns_maybe_create(interp, base_ns, key, flags);


More information about the parrot-commits mailing list