Tk Source Code

Check-in [a2b769a6]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Bug-2433260: non-critical error in Tk_PhotoPutBlock
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-4-branch
Files: files | file ages | folders
SHA1: a2b769a6912891e498b1645b9877c1e98aa93ebc
User & Date: jan.nijtmans 2012-01-25 22:00:59
Context
2012-02-15
20:33
[Bug 3486474]: Inconsistent color scaling check-in: feaff433 user: jan.nijtmans tags: core-8-4-branch
2012-02-10
23:55
proposed fix for bug-3486474 check-in: 6f74cf37 user: jan.nijtmans tags: bug-3486474
2012-01-25
22:06
Bug-2433260: non-critical error in Tk_PhotoPutBlock check-in: 53c0922f user: jan.nijtmans tags: core-8-5-branch
22:00
Bug-2433260: non-critical error in Tk_PhotoPutBlock check-in: a2b769a6 user: jan.nijtmans tags: core-8-4-branch
2011-12-22
18:39
3235256 - Keep menu entry IDs out of system values. Thanks Colin McDonald. check-in: 45ce45eb user: dgp tags: core-8-4-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.






1
2
3
4
5
6
7





2011-11-22  Jan Nijtmans  <[email protected]>

	* doc/wish.1: Use the same shebang comment everywhere.
	* library/demos/hello
	* library/demos/rmt
	* library/demos/square
	* library/demos/tcolor
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
2012-01-25  Jan Nijtmans  <[email protected]>

	* generic/tkImgPhoto.c: [Bug 2433260]: non-critical error in
	Tk_PhotoPutBlock

2011-11-22  Jan Nijtmans  <[email protected]>

	* doc/wish.1: Use the same shebang comment everywhere.
	* library/demos/hello
	* library/demos/rmt
	* library/demos/square
	* library/demos/tcolor

Changes to generic/tkImgPhoto.c.

4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
    }
    if ((greenOffset != 0) || (blueOffset != 0)) {
	masterPtr->flags |= COLOR_IMAGE;
    }

    /*
     * Copy the data into our local 32-bit/pixel array.
     * If we can do it with a single memcpy, we do.
     */

    destLinePtr = masterPtr->pix32 + (y * masterPtr->width + x) * 4;
    pitch = masterPtr->width * 4;

    /*
     * This test is probably too restrictive.  We should also be able to
     * do a memcpy if pixelSize == 3 and alphaOffset == 0.  Maybe other cases
     * too.
     */
    if ((blockPtr->pixelSize == 4)
	    && (greenOffset == 1) && (blueOffset == 2) && (alphaOffset == 3)
	    && (width <= blockPtr->width) && (height <= blockPtr->height)
	    && ((height == 1) || ((x == 0) && (width == masterPtr->width)
		&& (blockPtr->pitch == pitch)))
	    && (compRule == TK_PHOTO_COMPOSITE_SET)) {
	memcpy((VOID *) destLinePtr,
		(VOID *) (blockPtr->pixelPtr + blockPtr->offset[0]),
		(size_t) (height * width * 4));
    } else {
	int alpha;
	for (hLeft = height; hLeft > 0;) {
	    srcLinePtr = blockPtr->pixelPtr + blockPtr->offset[0];
	    hCopy = MIN(hLeft, blockPtr->height);







|







|








|







4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
    }
    if ((greenOffset != 0) || (blueOffset != 0)) {
	masterPtr->flags |= COLOR_IMAGE;
    }

    /*
     * Copy the data into our local 32-bit/pixel array.
     * If we can do it with a single memmove, we do.
     */

    destLinePtr = masterPtr->pix32 + (y * masterPtr->width + x) * 4;
    pitch = masterPtr->width * 4;

    /*
     * This test is probably too restrictive.  We should also be able to
     * do a memmove if pixelSize == 3 and alphaOffset == 0.  Maybe other cases
     * too.
     */
    if ((blockPtr->pixelSize == 4)
	    && (greenOffset == 1) && (blueOffset == 2) && (alphaOffset == 3)
	    && (width <= blockPtr->width) && (height <= blockPtr->height)
	    && ((height == 1) || ((x == 0) && (width == masterPtr->width)
		&& (blockPtr->pitch == pitch)))
	    && (compRule == TK_PHOTO_COMPOSITE_SET)) {
	memmove((VOID *) destLinePtr,
		(VOID *) (blockPtr->pixelPtr + blockPtr->offset[0]),
		(size_t) (height * width * 4));
    } else {
	int alpha;
	for (hLeft = height; hLeft > 0;) {
	    srcLinePtr = blockPtr->pixelPtr + blockPtr->offset[0];
	    hCopy = MIN(hLeft, blockPtr->height);