--- a/XWorkstat.st Fri Jul 28 04:58:06 1995 +0200
+++ b/XWorkstat.st Thu Aug 03 03:33:27 1995 +0200
@@ -35,7 +35,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.51 1995-07-27 23:54:05 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.52 1995-08-03 01:33:27 claus Exp $
'!
!XWorkstation class methodsFor:'documentation'!
@@ -56,7 +56,7 @@
version
"
-$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.51 1995-07-27 23:54:05 claus Exp $
+$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.52 1995-08-03 01:33:27 claus Exp $
"
!
@@ -4878,7 +4878,7 @@
getPixelX:x y:y from:aDrawableId
"return the pixel value at x/y; coordinates start at 0/0 for the upper left."
-%{ /* NOCONTEXT */
+%{ /* UNLIMITEDSTACK NOCONTEXT */
Window win = _WindowVal(aDrawableId);
XImage *img;
@@ -4896,9 +4896,7 @@
XDestroyImage(img);
RETURN ( _MKSMALLINT(ret) );
}
-%}
-.
- self primitiveFailed.
+%}.
^ nil
!
@@ -4921,6 +4919,10 @@
with:nil "bytes_per_line"
with:nil "byte_order".
+ "/ had to extract the getPixel call into a separate method, to specify
+ "/ unlimitedStack (some implementations use alloca and require huge amounts
+ "/ of temporary stack space
+
(self primGetBitsFrom:aDrawableId x:srcx y:srcy width:w height:h into:imageBits infoInfo:info) ifTrue:[
^ info
].