From 59cdec755a298e454729fc28e653dc327b468c81 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 25 Aug 2009 18:24:49 -0500 Subject: [PATCH] throw a better error if is called when specialized array vocab isn't loaded. fix --- basis/alien/c-types/c-types.factor | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/basis/alien/c-types/c-types.factor b/basis/alien/c-types/c-types.factor index 65f663e7b6..675bc56503 100755 --- a/basis/alien/c-types/c-types.factor +++ b/basis/alien/c-types/c-types.factor @@ -95,6 +95,8 @@ M: string require-c-type-arrays M: array require-c-type-arrays first c-type require-c-type-arrays ; +ERROR: specialized-array-vocab-not-loaded vocab word ; + GENERIC: c-type-array-constructor ( c-type -- word ) foldable M: string c-type-array-constructor @@ -102,21 +104,26 @@ M: string c-type-array-constructor M: array c-type-array-constructor first c-type c-type-array-constructor ; M: c-type c-type-array-constructor - array-constructor>> ; + array-constructor>> dup word? + [ first2 specialized-array-vocab-not-loaded ] unless ; GENERIC: c-type-direct-array-constructor ( c-type -- word ) foldable M: string c-type-direct-array-constructor - c-type c-type-array-constructor ; + c-type c-type-direct-array-constructor ; M: array c-type-direct-array-constructor first c-type c-type-direct-array-constructor ; M: c-type c-type-direct-array-constructor - direct-array-constructor>> ; + direct-array-constructor>> dup word? + [ first2 specialized-array-vocab-not-loaded ] unless ; -: ( len c-type -- array ) +GENERIC: ( len c-type -- array ) +M: object c-type-array-constructor execute( len -- array ) ; inline -: ( len c-type -- array ) - c-type-direct-array-constructor execute( len -- array ) ; inline + +GENERIC: ( alien len c-type -- array ) +M: object + c-type-direct-array-constructor execute( alien len -- array ) ; inline GENERIC: c-type-class ( name -- class )