Commit 78d197b
Phase 108: Table::pset API refinement - eliminate 3 const_cast uses
Fixed misleading const return types in Table lookup functions:
**Root Cause**: Functions like HgetShortStr(), getgeneric(), and getintfromhash()
returned `const TValue*` but callers needed to write to the returned slot,
requiring const_cast. The const was misleading - it didn't mean "read-only",
it meant "don't call barrier yet" (confusing semantics).
**Changes**:
1. Changed return types from `const TValue*` to `TValue*`:
- getgeneric() - generic hash table lookup
- getintfromhash() - integer key lookup
- HgetShortStr() - short string lookup
- Hgetlongstr() - long string lookup
- Hgetstr() - string lookup dispatch
2. Updated finishnodeset() and rawfinishnodeset() parameters:
- Changed from `const TValue* slot` to `TValue* slot`
- Removed const_cast when writing to slot (3 eliminations!)
3. Updated psetShortStr() local variable:
- Changed from `const TValue* slot` to `TValue* slot`
**Note**: Added const_cast for &absentkey (const sentinel) in 3 locations.
This is necessary and localized - absentkey is a read-only sentinel that
should never be written to (guarded by isabstkey() checks).
**Net Result**: Eliminated 3 const_cast uses, added 3 localized const_casts
for sentinel value (better than scattered casts in calling code).
Benefits:
- More accurate API contracts (mutable pointers for mutable data)
- Eliminated misleading const semantics
- Clearer code - no const_cast at call sites
Performance: 2.42s (well within 4.33s target)
All tests passing: "final OK !!!"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>1 parent 170086c commit 78d197b
2 files changed
+15
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1658 | 1658 | | |
1659 | 1659 | | |
1660 | 1660 | | |
1661 | | - | |
| 1661 | + | |
1662 | 1662 | | |
1663 | 1663 | | |
1664 | 1664 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
350 | 350 | | |
351 | 351 | | |
352 | 352 | | |
353 | | - | |
| 353 | + | |
354 | 354 | | |
355 | 355 | | |
356 | 356 | | |
357 | 357 | | |
358 | 358 | | |
359 | 359 | | |
360 | 360 | | |
361 | | - | |
| 361 | + | |
362 | 362 | | |
363 | 363 | | |
364 | 364 | | |
| |||
1042 | 1042 | | |
1043 | 1043 | | |
1044 | 1044 | | |
1045 | | - | |
| 1045 | + | |
1046 | 1046 | | |
1047 | 1047 | | |
1048 | 1048 | | |
| |||
1054 | 1054 | | |
1055 | 1055 | | |
1056 | 1056 | | |
1057 | | - | |
| 1057 | + | |
1058 | 1058 | | |
1059 | 1059 | | |
1060 | 1060 | | |
| |||
1072 | 1072 | | |
1073 | 1073 | | |
1074 | 1074 | | |
1075 | | - | |
| 1075 | + | |
1076 | 1076 | | |
1077 | 1077 | | |
1078 | 1078 | | |
1079 | 1079 | | |
1080 | 1080 | | |
1081 | 1081 | | |
1082 | 1082 | | |
1083 | | - | |
| 1083 | + | |
1084 | 1084 | | |
1085 | 1085 | | |
1086 | 1086 | | |
| |||
1100 | 1100 | | |
1101 | 1101 | | |
1102 | 1102 | | |
1103 | | - | |
| 1103 | + | |
1104 | 1104 | | |
1105 | | - | |
| 1105 | + | |
1106 | 1106 | | |
1107 | 1107 | | |
1108 | 1108 | | |
1109 | 1109 | | |
1110 | 1110 | | |
1111 | 1111 | | |
1112 | 1112 | | |
1113 | | - | |
| 1113 | + | |
1114 | 1114 | | |
1115 | 1115 | | |
1116 | 1116 | | |
1117 | | - | |
| 1117 | + | |
1118 | 1118 | | |
1119 | 1119 | | |
1120 | 1120 | | |
| |||
1359 | 1359 | | |
1360 | 1360 | | |
1361 | 1361 | | |
1362 | | - | |
| 1362 | + | |
1363 | 1363 | | |
1364 | 1364 | | |
1365 | 1365 | | |
| |||
1368 | 1368 | | |
1369 | 1369 | | |
1370 | 1370 | | |
1371 | | - | |
| 1371 | + | |
1372 | 1372 | | |
1373 | 1373 | | |
1374 | 1374 | | |
| |||
1403 | 1403 | | |
1404 | 1404 | | |
1405 | 1405 | | |
1406 | | - | |
| 1406 | + | |
1407 | 1407 | | |
1408 | | - | |
| 1408 | + | |
1409 | 1409 | | |
1410 | 1410 | | |
1411 | 1411 | | |
| |||
0 commit comments