- SCM_ASSERT_TYPE (me, grob_arr, SCM_ARG1, __FUNCTION__, "Grob_array");
- SCM_ASSERT_TYPE (scm_is_integer (index), index, SCM_ARG2, __FUNCTION__, "integer");
-
- int i = scm_to_int (index);
- if (i < 0 || i >= me->size ())
- {
- scm_out_of_range (NULL, scm_from_size_t (i));
- }
+ LY_ASSERT_SMOB (Grob_array, grob_arr, 1);
+ LY_ASSERT_TYPE (scm_is_integer, index, 2);
+
+ vsize i = scm_to_unsigned (index);
+ if (i == VPOS || i >= me->size ())
+ scm_out_of_range (NULL, scm_from_unsigned (i));