[svn:parrot] r39712 - branches/tt761_keys_revamp/src/pmc

bacek at svn.parrot.org bacek at svn.parrot.org
Mon Jun 22 12:14:22 UTC 2009


Author: bacek
Date: Mon Jun 22 12:14:22 2009
New Revision: 39712
URL: https://trac.parrot.org/parrot/changeset/39712

Log:
[pmc] Properly handle NULLs from VTABLE_get_string to use as keys.

Which mean - throw an exception and get out of here!

Modified:
   branches/tt761_keys_revamp/src/pmc/hash.pmc

Modified: branches/tt761_keys_revamp/src/pmc/hash.pmc
==============================================================================
--- branches/tt761_keys_revamp/src/pmc/hash.pmc	Mon Jun 22 12:08:10 2009	(r39711)
+++ branches/tt761_keys_revamp/src/pmc/hash.pmc	Mon Jun 22 12:14:22 2009	(r39712)
@@ -126,7 +126,13 @@
         /* Currently PMCs are stringified */
         case Hash_key_type_PMC:
         case Hash_key_type_STRING:
-            ret = (void *)Parrot_str_new_COW(interp, VTABLE_get_string(interp, key));
+            {
+                STRING *tmp = VTABLE_get_string(interp, key);
+                if (!tmp)
+                    Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNEXPECTED_NULL,
+                            "hash: can't use null as key");
+                ret = (void *)Parrot_str_new_COW(interp, tmp);
+            }
             break;
         default:
             Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_UNIMPLEMENTED,


More information about the parrot-commits mailing list