]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/specialized-vectors/specialized-vectors.factor
specialized-arrays: performed some cleanup.
[factor.git] / basis / specialized-vectors / specialized-vectors.factor
index 2b5b2f3f92e2827dbdc7cf2090abd211484a045a..7112442c23cef62790cce447b6520e02fb0a7158 100644 (file)
@@ -1,8 +1,8 @@
 ! Copyright (C) 2008, 2010 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors alien alien.c-types alien.parser assocs
-classes compiler.units functors growable kernel lexer math
-namespaces parser prettyprint.custom sequences
+USING: accessors alien alien.c-types alien.data alien.parser
+assocs classes compiler.units functors growable kernel lexer
+math namespaces parser prettyprint.custom sequences
 specialized-arrays specialized-arrays.private strings
 vocabs vocabs.loader vocabs.parser vocabs.generated fry make ;
 FROM: sequences.private => nth-unsafe ;
@@ -19,7 +19,6 @@ FUNCTOR: define-vector ( T -- )
 V DEFINES-CLASS ${T}-vector
 
 A          IS ${T}-array
->A         IS >${A}
 <A>        IS <${A}>
 <direct-A> IS <direct-${A}>
 
@@ -48,7 +47,9 @@ M: V nth-c-ptr underlying>> nth-c-ptr ; inline
 
 M: A like
     drop dup A instance? [
-        dup V instance? [ [ >c-ptr ] [ length>> ] bi <direct-A> ] [ >A ] if
+        dup V instance? [
+            [ >c-ptr ] [ length>> ] bi <direct-A>
+        ] [ \ T >c-array ] if
     ] unless ; inline
 
 SYNTAX: V{ \ } [ >V ] parse-literal ;