]> gitweb.factorcode.org Git - factor.git/commitdiff
fix struct-array of struct class; inline memory>struct so the compiler can optimize...
authorJoe Groff <arcata@gmail.com>
Thu, 27 Aug 2009 00:20:20 +0000 (19:20 -0500)
committerJoe Groff <arcata@gmail.com>
Thu, 27 Aug 2009 00:20:20 +0000 (19:20 -0500)
basis/classes/struct/struct.factor
basis/struct-arrays/struct-arrays.factor

index 07515bc8431f854ad810be221c07e7ff6d9c02ea..df379201bf3896b1c35910f4b18778d36e6fb616 100644 (file)
@@ -36,7 +36,7 @@ M: struct equal?
 
 : memory>struct ( ptr class -- struct )
     over c-ptr? [ swap \ c-ptr bad-slot-value ] unless
-    tuple-layout <tuple> [ 2 set-slot ] keep ;
+    tuple-layout <tuple> [ 2 set-slot ] keep ; inline
 
 : malloc-struct ( class -- struct )
     [ heap-size malloc ] keep memory>struct ; inline
index a426f8bb667bda99fb55e64c431e4c7c02990b1e..0f03c582120ff44e3199f0059c579032d2699e32 100755 (executable)
@@ -20,7 +20,7 @@ M: struct-array byte-length [ length>> ] [ element-size>> ] bi * ;
     [ element-size>> * ] [ underlying>> ] bi <displaced-alien> ; inline
 
 M: struct-array nth-unsafe
-    [ (nth-ptr) ] [ class>> struct-class? ] bi [ memory>struct ] when* ; inline
+    [ (nth-ptr) ] [ class>> dup struct-class? ] bi [ memory>struct ] [ drop ] if ; inline
 
 M: struct-array set-nth-unsafe
     [ (nth-ptr) swap ] [ element-size>> ] bi memcpy ;