[svn:parrot] r40226 - in trunk: include/parrot src
petdance at svn.parrot.org
petdance at svn.parrot.org
Thu Jul 23 06:51:52 UTC 2009
Author: petdance
Date: Thu Jul 23 06:51:50 2009
New Revision: 40226
URL: https://trac.parrot.org/parrot/changeset/40226
Log:
Parrot_get_namespace_keyed should not take a NULL pmc_key
Modified:
trunk/include/parrot/global.h
trunk/src/global.c
Modified: trunk/include/parrot/global.h
==============================================================================
--- trunk/include/parrot/global.h Thu Jul 23 00:03:47 2009 (r40225)
+++ trunk/include/parrot/global.h Thu Jul 23 06:51:50 2009 (r40226)
@@ -71,9 +71,10 @@
PARROT_CAN_RETURN_NULL
PMC * Parrot_get_namespace_keyed(PARROT_INTERP,
ARGIN(PMC *base_ns),
- ARGIN_NULLOK(PMC *pmc_key))
+ ARGIN(PMC *pmc_key))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -95,9 +96,10 @@
PARROT_CAN_RETURN_NULL
PMC * Parrot_make_namespace_keyed(PARROT_INTERP,
ARGIN(PMC *base_ns),
- ARGIN_NULLOK(PMC *pmc_key))
+ ARGIN(PMC *pmc_key))
__attribute__nonnull__(1)
- __attribute__nonnull__(2);
+ __attribute__nonnull__(2)
+ __attribute__nonnull__(3);
PARROT_EXPORT
PARROT_WARN_UNUSED_RESULT
@@ -158,7 +160,8 @@
PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_get_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(base_ns)
+ || PARROT_ASSERT_ARG(base_ns) \
+ || PARROT_ASSERT_ARG(pmc_key)
#define ASSERT_ARGS_Parrot_get_namespace_keyed_str \
__attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp) \
@@ -168,7 +171,8 @@
PARROT_ASSERT_ARG(interp)
#define ASSERT_ARGS_Parrot_make_namespace_keyed __attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp) \
- || PARROT_ASSERT_ARG(base_ns)
+ || PARROT_ASSERT_ARG(base_ns) \
+ || PARROT_ASSERT_ARG(pmc_key)
#define ASSERT_ARGS_Parrot_make_namespace_keyed_str \
__attribute__unused__ int _ASSERT_ARGS_CHECK = \
PARROT_ASSERT_ARG(interp) \
Modified: trunk/src/global.c
==============================================================================
--- trunk/src/global.c Thu Jul 23 00:03:47 2009 (r40225)
+++ trunk/src/global.c Thu Jul 23 06:51:50 2009 (r40226)
@@ -205,20 +205,15 @@
PMC *ns = base_ns;
for (i = 0; i < n; ++i) {
- if (!pmc_key)
- Parrot_ex_throw_from_c_args(interp, NULL, 1,
- "Passed a NULL pmc_key into VTABLE_get_string_keyed_int");
- else {
- STRING * const part = VTABLE_get_string_keyed_int(interp, pmc_key, i);
- PMC *sub_ns = VTABLE_get_pmc_keyed_str(interp, ns, part);
-
- if (PMC_IS_NULL(sub_ns) || !VTABLE_isa(interp, sub_ns, isans)) {
- sub_ns = internal_ns_maybe_create(interp, ns, part, flags);
- if (PMC_IS_NULL(sub_ns))
- return PMCNULL;
- }
- ns = sub_ns;
+ STRING * const part = VTABLE_get_string_keyed_int(interp, pmc_key, i);
+ PMC *sub_ns = VTABLE_get_pmc_keyed_str(interp, ns, part);
+
+ if (PMC_IS_NULL(sub_ns) || !VTABLE_isa(interp, sub_ns, isans)) {
+ sub_ns = internal_ns_maybe_create(interp, ns, part, flags);
+ if (PMC_IS_NULL(sub_ns))
+ return PMCNULL;
}
+ ns = sub_ns;
}
return ns;
}
@@ -280,7 +275,7 @@
PARROT_WARN_UNUSED_RESULT
PARROT_CAN_RETURN_NULL
PMC *
-Parrot_get_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN_NULLOK(PMC *pmc_key))
+Parrot_get_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns), ARGIN(PMC *pmc_key))
{
ASSERT_ARGS(Parrot_get_namespace_keyed)
return internal_ns_keyed(interp, base_ns, pmc_key, 0);
@@ -327,7 +322,7 @@
PARROT_CAN_RETURN_NULL
PMC *
Parrot_make_namespace_keyed(PARROT_INTERP, ARGIN(PMC *base_ns),
- ARGIN_NULLOK(PMC *pmc_key))
+ ARGIN(PMC *pmc_key))
{
ASSERT_ARGS(Parrot_make_namespace_keyed)
return internal_ns_keyed(interp, base_ns, pmc_key, INTERN_NS_CREAT);
More information about the parrot-commits
mailing list