mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-27 07:21:09 +08:00
Clean up locktable init code per recent gripe from Kurt Roeckx.
No change in behavior, but old code would have failed to detect overrun of MAX_LOCKMODES.
This commit is contained in:
parent
c771838106
commit
de9c553f6b
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.58 2003/08/04 02:40:03 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.59 2003/08/17 22:41:12 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -76,8 +76,10 @@ InitLockTable(int maxBackends)
|
||||
{
|
||||
int lockmethod;
|
||||
|
||||
/* number of lock modes is lengthof()-1 because of dummy zero */
|
||||
lockmethod = LockMethodTableInit("LockTable",
|
||||
LockConflicts, MAX_LOCKMODES - 1,
|
||||
LockConflicts,
|
||||
lengthof(LockConflicts) - 1,
|
||||
maxBackends);
|
||||
LockTableId = lockmethod;
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.126 2003/08/04 02:40:03 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.127 2003/08/17 22:41:12 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
* Outside modules can create a lock table and acquire/release
|
||||
@ -212,8 +212,8 @@ LockMethodInit(LOCKMETHODTABLE *lockMethodTable,
|
||||
int i;
|
||||
|
||||
lockMethodTable->numLockModes = numModes;
|
||||
numModes++;
|
||||
for (i = 0; i < numModes; i++, conflictsP++)
|
||||
/* copies useless zero element as well as the N lockmodes */
|
||||
for (i = 0; i <= numModes; i++, conflictsP++)
|
||||
lockMethodTable->conflictTab[i] = *conflictsP;
|
||||
}
|
||||
|
||||
@ -241,11 +241,8 @@ LockMethodTableInit(char *tabName,
|
||||
max_table_size;
|
||||
|
||||
if (numModes >= MAX_LOCKMODES)
|
||||
{
|
||||
elog(WARNING, "too many lock types %d (limit is %d)",
|
||||
numModes, MAX_LOCKMODES);
|
||||
return INVALID_LOCKMETHOD;
|
||||
}
|
||||
elog(ERROR, "too many lock types %d (limit is %d)",
|
||||
numModes, MAX_LOCKMODES-1);
|
||||
|
||||
/* Compute init/max size to request for lock hashtables */
|
||||
max_table_size = NLOCKENTS(maxBackends);
|
||||
|
Loading…
Reference in New Issue
Block a user