Check-in [3487dba2a4]
Not logged in

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

Overview
Comment:Fix efficiency bug detected by Kieran Elby.
Timelines: family | ancestors | descendants | both | core-8-5-branch
Files: files | file ages | folders
SHA1: 3487dba2a4c2c1073c7e89a544e608c186f0bc2e
User & Date: dkf 2008-09-10 13:17:51.000
Context
2008-09-17
12:37
* library/init.tcl: export min and max commands from the mathfunc namespace [Bug 2116053] check-in: edd3d89e69 user: msofer tags: core-8-5-branch
2008-09-10
13:17
Fix efficiency bug detected by Kieran Elby. check-in: 3487dba2a4 user: dkf tags: core-8-5-branch
2008-09-07
14:00
* doc/namespace.n: fix [Bug 2098441] check-in: 57d884253e user: msofer tags: core-8-5-branch
Changes
Unified Diff Ignore Whitespace Patch
Changes to ChangeLog.







1
2
3
4
5
6
7







2008-09-07  Miguel Sofer  <msofer@users.sf.net>

	* doc/namespace.n: fix [Bug 2098441]

2008-08-28  Don Porter	<dgp@users.sourceforge.net>

	* generic/tcl.h:	Bump version number to 8.5.5b1 to distinguish
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
2008-09-10  Donal K. Fellows  <donal.k.fellows@man.ac.uk>

	* generic/tclListObj.c (Tcl_ListObjGetElements): Make this list->dict
	transformation - encountered when using [foreach] with dicts - not as
	expensive as it was before. Spotted by Kieran Elby and reported on
	tcl-core.

2008-09-07  Miguel Sofer  <msofer@users.sf.net>

	* doc/namespace.n: fix [Bug 2098441]

2008-08-28  Don Porter	<dgp@users.sourceforge.net>

	* generic/tcl.h:	Bump version number to 8.5.5b1 to distinguish
Changes to generic/tclListObj.c.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
 * tclListObj.c --
 *
 *	This file contains functions that implement the Tcl list object type.
 *
 * Copyright (c) 1995-1997 Sun Microsystems, Inc.
 * Copyright (c) 1998 by Scriptics Corporation.
 * Copyright (c) 2001 by Kevin B. Kenny.  All rights reserved.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 *
 * RCS: @(#) $Id: tclListObj.c,v 1.49.2.1 2008/07/20 22:02:39 dkf Exp $
 */

#include "tclInt.h"

/*
 * Prototypes for functions defined later in this file:
 */












|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
 * tclListObj.c --
 *
 *	This file contains functions that implement the Tcl list object type.
 *
 * Copyright (c) 1995-1997 Sun Microsystems, Inc.
 * Copyright (c) 1998 by Scriptics Corporation.
 * Copyright (c) 2001 by Kevin B. Kenny.  All rights reserved.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 *
 * RCS: @(#) $Id: tclListObj.c,v 1.49.2.2 2008/09/10 13:18:11 dkf Exp $
 */

#include "tclInt.h"

/*
 * Prototypes for functions defined later in this file:
 */
424
425
426
427
428
429
430








431

432
433
434
435
436
437
438
				 * pointers to the list's objects. */
{
    register List *listRepPtr;

    if (listPtr->typePtr != &tclListType) {
	int result, length;









	(void) TclGetStringFromObj(listPtr, &length);

	if (!length) {
	    *objcPtr = 0;
	    *objvPtr = NULL;
	    return TCL_OK;
	}

	result = SetListFromAny(interp, listPtr);







>
>
>
>
>
>
>
>
|
>







424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
				 * pointers to the list's objects. */
{
    register List *listRepPtr;

    if (listPtr->typePtr != &tclListType) {
	int result, length;

	/*
	 * Don't get the string version of a dictionary; that transformation
	 * is not lossy, but is expensive.
	 */

	if (listPtr->typePtr == &tclDictType) {
	    (void) Tcl_DictObjSize(NULL, listPtr, &length);
	} else {
	    (void) TclGetStringFromObj(listPtr, &length);
	}
	if (!length) {
	    *objcPtr = 0;
	    *objvPtr = NULL;
	    return TCL_OK;
	}

	result = SetListFromAny(interp, listPtr);