Moti Cohen
c333dbd9a3
dictEntry and dictEntryNoValue common layout ( #14264 )
...
Refactor `dictEntryNoValue` to remove the need for a per-entry bit
(`ENTRY_PTR_NO_VALUE`) indicating the absence of a value. By aligning
`dictEntry` and `dictEntryNoValue` so that the key and next fields share
the same layout, we can reuse common code paths. This precious bit can
be leveraged for other stuff.
The trade-off is that callers must now be more careful not to call
`dictSetVal()` or `dictGetVal()` on dictionaries that only store keys,
since we can no longer catch this with an assertion. However, this
limitation is manageable.
2025-08-25 15:58:02 +03:00
..
2025-07-01 20:26:51 +03:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:17:54 +03:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-07-03 14:41:26 +08:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:06:28 +03:00
2025-07-24 10:06:28 +03:00
2025-08-12 10:55:16 +03:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-08-21 22:31:28 +08:00
2025-05-01 14:04:22 +01:00
2025-06-13 16:59:34 +08:00
2025-07-24 15:20:04 +08:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-28 16:27:52 +08:00
2023-03-30 19:03:56 +03:00
2023-03-30 19:03:56 +03:00
2025-05-01 14:04:22 +01:00
2024-01-30 13:43:39 +02:00
2025-08-04 14:42:30 +03:00
2025-07-01 20:26:51 +03:00
2025-07-01 20:26:51 +03:00
2025-07-01 20:26:51 +03:00
2025-08-04 14:42:30 +03:00
2025-07-01 20:26:51 +03:00
2023-03-30 19:03:56 +03:00
2025-07-01 20:26:51 +03:00
2023-07-16 17:04:15 -05:00
2025-08-12 10:55:16 +03:00
2025-06-05 08:57:43 +08:00
2025-07-04 21:12:28 +08:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2024-03-08 15:50:36 -08:00
2024-03-20 22:38:24 +00:00
2025-05-26 11:52:06 +03:00
2024-11-12 09:21:22 +02:00
2024-11-12 09:21:22 +02:00
2024-11-12 09:21:22 +02:00
2024-11-12 09:21:22 +02:00
2025-07-30 22:24:56 +08:00
2025-08-14 11:34:36 +08:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:17:54 +03:00
2025-08-25 15:58:02 +03:00
2025-07-24 10:17:54 +03:00
2025-05-18 12:38:53 +08:00
2025-05-18 12:38:53 +08:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-28 16:27:52 +08:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-12 10:15:17 +03:00
2025-05-28 08:02:10 +03:00
2025-05-01 14:04:22 +01:00
2025-06-05 08:57:43 +08:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:17:54 +03:00
2025-05-01 14:04:22 +01:00
2025-05-12 10:15:17 +03:00
2024-03-20 22:38:24 +00:00
2024-03-20 22:38:24 +00:00
2024-03-20 22:38:24 +00:00
2024-03-20 22:38:24 +00:00
2025-07-24 10:06:28 +03:00
2024-03-20 22:38:24 +00:00
2024-03-20 22:38:24 +00:00
2025-07-11 11:23:54 +08:00
2025-06-05 08:57:43 +08:00
2025-06-05 08:57:43 +08:00
2025-07-24 10:17:54 +03:00
2025-05-01 14:04:22 +01:00
2024-10-29 13:07:26 +02:00
2025-05-01 14:04:22 +01:00
2025-06-21 10:28:51 +08:00
2025-06-21 10:28:51 +08:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-08-06 15:04:47 +08:00
2025-05-26 09:27:45 +03:00
2025-05-01 14:04:22 +01:00
2025-05-09 11:44:54 +03:00
2025-07-01 20:26:51 +03:00
2025-06-05 08:57:43 +08:00
2025-06-05 08:57:43 +08:00
2025-05-09 11:44:54 +03:00
2024-01-26 15:01:54 -08:00
2025-08-20 07:32:24 +08:00
2025-08-14 09:45:25 +08:00
2023-05-02 17:31:32 -07:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:17:54 +03:00
2025-07-24 15:20:04 +08:00
2025-07-07 13:29:14 +03:00
2025-08-20 13:54:45 +03:00
2024-03-20 22:38:24 +00:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:17:54 +03:00
2025-06-21 10:28:51 +08:00
2025-06-21 10:28:51 +08:00
2024-03-20 22:38:24 +00:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-18 12:38:53 +08:00
2025-05-18 12:38:53 +08:00
2025-07-24 10:17:54 +03:00
2025-05-01 14:04:22 +01:00
2025-05-12 10:15:17 +03:00
2025-06-19 11:25:32 +03:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:17:54 +03:00
2024-09-03 15:51:46 +08:00
2025-05-12 10:15:17 +03:00
2025-07-28 10:17:48 +03:00
2025-05-01 14:04:22 +01:00
2025-08-15 11:25:03 +08:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-28 12:43:59 +03:00
2025-07-07 10:12:51 +08:00
2025-05-01 14:04:22 +01:00
2025-07-01 20:26:51 +03:00
2025-05-01 14:04:22 +01:00
2025-05-12 10:15:17 +03:00
2025-05-12 10:15:17 +03:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:17:54 +03:00
2025-07-28 21:09:46 +08:00
2025-08-12 10:55:16 +03:00
2024-03-20 22:38:24 +00:00
2022-11-24 15:27:16 +02:00
2023-04-18 09:53:51 +03:00
2024-03-20 22:38:24 +00:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:06:28 +03:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:17:54 +03:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-07-01 21:00:42 +08:00
2022-07-18 10:56:26 +03:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-07-28 21:09:46 +08:00
2025-06-21 10:28:51 +08:00
2025-07-24 10:17:54 +03:00
2025-08-15 15:15:16 +08:00
2025-05-28 08:02:10 +03:00
2025-07-24 10:17:54 +03:00
2025-05-01 14:04:22 +01:00
2025-06-02 10:13:23 +03:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-07-24 10:06:28 +03:00
2025-05-01 14:04:22 +01:00
2025-06-02 10:13:23 +03:00
2025-07-24 10:06:28 +03:00
2025-03-19 20:08:45 +08:00
2025-05-01 14:04:22 +01:00
2025-01-14 15:51:05 +08:00
2024-03-20 22:38:24 +00:00
2025-05-01 14:04:22 +01:00
2025-05-01 14:04:22 +01:00
2025-08-25 10:33:52 +08:00
2025-06-12 22:31:26 +08:00