chiark
/
gitweb
/
~ian
/
chiark-tcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
changelog: start 1.2.1~
[chiark-tcl.git]
/
base
/
idtable.c
diff --git
a/base/idtable.c
b/base/idtable.c
index 389151e2c5a75096a669c37200f2adbc28c626f7..6e7aafaa1562c94b8f16398acc4a6acfb42622cc 100644
(file)
--- a/
base/idtable.c
+++ b/
base/idtable.c
@@
-1,6
+1,6
@@
/*
* base code for various Tcl extensions
/*
* base code for various Tcl extensions
- * Copyright 2006 Ian Jackson
+ * Copyright 2006
-2012
Ian Jackson
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@
-13,9
+13,7
@@
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301, USA.
+ * along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#include "chiark-tcl-base.h"
*/
#include "chiark-tcl-base.h"
@@
-79,14
+77,12
@@
int cht_tabledataid_parse(Tcl_Interp *ip, Tcl_Obj *o, const IdDataSpec *idds) {
int l;
unsigned long ul;
IdDataValue *dv;
int l;
unsigned long ul;
IdDataValue *dv;
- IdDataAssocData *assoc;
char *ep, *str;
if (o->typePtr != &cht_tabledataid_nearlytype) goto convert;
dv= o->internalRep.otherValuePtr;
if (dv->interp != ip) goto convert;
char *ep, *str;
if (o->typePtr != &cht_tabledataid_nearlytype) goto convert;
dv= o->internalRep.otherValuePtr;
if (dv->interp != ip) goto convert;
- assoc= dv->assoc;
if (dv->assoc->idds != idds) goto convert;
return TCL_OK;
if (dv->assoc->idds != idds) goto convert;
return TCL_OK;
@@
-147,6
+143,7
@@
Tcl_Obj *cht_ret_iddata(Tcl_Interp *ip, void *val, const IdDataSpec *idds) {
if (ix==-1) {
for (ix=0; ix<assoc->n && assoc->a[ix]; ix++);
if (ix>=assoc->n) {
if (ix==-1) {
for (ix=0; ix<assoc->n && assoc->a[ix]; ix++);
if (ix>=assoc->n) {
+ assert(assoc->n < INT_MAX/4);
assoc->n += 2;
assoc->n *= 2;
assoc->a= TREALLOC(assoc->a, assoc->n*sizeof(*assoc->a));
assoc->n += 2;
assoc->n *= 2;
assoc->a= TREALLOC(assoc->a, assoc->n*sizeof(*assoc->a));