changed: #rowAt:into:startingAt:
authorClaus Gittinger <cg@exept.de>
Mon, 27 Feb 2012 13:46:22 +0100
changeset 5851 ce6442599a43
parent 5850 467c30bfb1ed
child 5852 bfd4bf3803bf
changed: #rowAt:into:startingAt:
Depth8Image.st
--- a/Depth8Image.st	Thu Feb 23 01:02:35 2012 +0100
+++ b/Depth8Image.st	Mon Feb 27 13:46:22 2012 +0100
@@ -131,16 +131,25 @@
     "fill aPixelBuffer with pixel values from a single row.
      Notice: row coordinate starts at 0."
 
-    |srcIdx|
+    |srcIdx endIndex n|
 
     bytes notNil ifTrue:[
-	srcIdx := (y * width) + 1.
-	aPixelBuffer replaceFrom:startIndex to:startIndex+width-1 with:bytes startingAt:srcIdx.
-	^ self.
+        srcIdx := (y * width) + 1.
+        n := width.
+
+        endIndex := srcIdx+width-1.
+        endIndex > bytes size ifTrue:[
+            self assert:(bytes size >= endIndex).
+            endIndex := bytes size.
+            n := endIndex - srcIdx + 1.
+        ].
+
+        aPixelBuffer replaceFrom:startIndex to:startIndex+n-1 with:bytes startingAt:srcIdx.
+        ^ self.
     ].
     ^ super rowAt:y into:aPixelBuffer startingAt:startIndex
 
-    "Modified: 24.4.1997 / 15:47:22 / cg"
+    "Modified: / 16-02-2012 / 15:58:01 / cg"
 !
 
 rowAt:y putAll:pixelArray startingAt:startIndex
@@ -2446,9 +2455,9 @@
 !Depth8Image class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.116 2009-11-05 14:36:21 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.117 2012-02-27 12:46:22 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.116 2009-11-05 14:36:21 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/Depth8Image.st,v 1.117 2012-02-27 12:46:22 cg Exp $'
 ! !