int_array.c (gawk-5.0.1.tar.xz) | : | int_array.c (gawk-5.1.0.tar.xz) | ||
---|---|---|---|---|

/* | /* | |||

* int_array.c - routines for arrays of integer indices. | * int_array.c - routines for arrays of integer indices. | |||

*/ | */ | |||

/* | /* | |||

* Copyright (C) 1986, 1988, 1989, 1991-2013, 2016, 2017, 2019, | * Copyright (C) 1986, 1988, 1989, 1991-2013, 2016, 2017, 2019, 2020, | |||

* the Free Software Foundation, Inc. | * the Free Software Foundation, Inc. | |||

* | * | |||

* This file is part of GAWK, the GNU implementation of the | * This file is part of GAWK, the GNU implementation of the | |||

* AWK Programming Language. | * AWK Programming Language. | |||

* | * | |||

* GAWK is free software; you can redistribute it and/or modify | * GAWK is free software; you can redistribute it and/or modify | |||

* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | |||

* the Free Software Foundation; either version 3 of the License, or | * the Free Software Foundation; either version 3 of the License, or | |||

* (at your option) any later version. | * (at your option) any later version. | |||

* | * | |||

skipping to change at line 237 | skipping to change at line 237 | |||

{ | { | |||

uint32_t hash1; | uint32_t hash1; | |||

long k; | long k; | |||

unsigned long size; | unsigned long size; | |||

NODE **lhs; | NODE **lhs; | |||

NODE *xn; | NODE *xn; | |||

/* | /* | |||

* N.B: symbol->table_size is the total # of non-integers (symbol->xarray ) | * N.B: symbol->table_size is the total # of non-integers (symbol->xarray ) | |||

* and integer elements. Also, symbol->xarray must have at least one | * and integer elements. Also, symbol->xarray must have at least one | |||

* item in it, and can not exist if there are no integer elements. | * item in it, and cannot exist if there are no integer elements. | |||

* In that case, symbol->xarray is promoted to 'symbol' (See int_rem ove). | * In that case, symbol->xarray is promoted to 'symbol' (See int_rem ove). | |||

*/ | */ | |||

if (! is_integer(symbol, subs)) { | if (! is_integer(symbol, subs)) { | |||

xn = symbol->xarray; | xn = symbol->xarray; | |||

if (xn == NULL) { | if (xn == NULL) { | |||

xn = symbol->xarray = make_array(); | xn = symbol->xarray = make_array(); | |||

xn->vname = symbol->vname; /* shallow copy */ | xn->vname = symbol->vname; /* shallow copy */ | |||

xn->flags |= XARRAY; | xn->flags |= XARRAY; | |||

} else if ((lhs = xn->aexists(xn, subs)) != NULL) | } else if ((lhs = xn->aexists(xn, subs)) != NULL) | |||

End of changes. 2 change blocks. | ||||

2 lines changed or deleted | | 2 lines changed or added |