Commit 6ea136e
authored
empty kv dict can crash when dumping dict (#359)
Fix a corner case when a kv dict is empty and being iterated over.
- initialize labels on position 0 and 1, to prevent lookup[1]
- this works backwards compatible: old keyvi versions reading dicts from new version
- set start_state to 0 if dict is empty and check start_state !=0 for lookup
- this works backwards compatible: new keyvi versions reading dicts from old version
- shortcut lookup on empty dicts to prevent paging for empty dicts
fixes #3601 parent 207e0a2 commit 6ea136e
File tree
10 files changed
+133
-59
lines changed- keyvi
- include/keyvi/dictionary
- fsa
- internal
- matching
- tests/keyvi/dictionary
- python/tests/dictionary
10 files changed
+133
-59
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
261 | 266 | | |
262 | 267 | | |
263 | 268 | | |
| |||
281 | 286 | | |
282 | 287 | | |
283 | 288 | | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
284 | 294 | | |
285 | 295 | | |
286 | 296 | | |
| |||
304 | 314 | | |
305 | 315 | | |
306 | 316 | | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
307 | 321 | | |
308 | 322 | | |
309 | 323 | | |
| |||
351 | 365 | | |
352 | 366 | | |
353 | 367 | | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
354 | 372 | | |
355 | 373 | | |
356 | 374 | | |
| |||
361 | 379 | | |
362 | 380 | | |
363 | 381 | | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
364 | 386 | | |
365 | 387 | | |
366 | 388 | | |
| |||
369 | 391 | | |
370 | 392 | | |
371 | 393 | | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
372 | 397 | | |
373 | 398 | | |
374 | 399 | | |
| |||
380 | 405 | | |
381 | 406 | | |
382 | 407 | | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
383 | 412 | | |
384 | 413 | | |
385 | 414 | | |
| |||
405 | 434 | | |
406 | 435 | | |
407 | 436 | | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
408 | 440 | | |
409 | 441 | | |
410 | 442 | | |
| |||
417 | 449 | | |
418 | 450 | | |
419 | 451 | | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
420 | 456 | | |
421 | 457 | | |
422 | 458 | | |
| |||
444 | 480 | | |
445 | 481 | | |
446 | 482 | | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
447 | 486 | | |
448 | 487 | | |
449 | 488 | | |
| |||
456 | 495 | | |
457 | 496 | | |
458 | 497 | | |
459 | | - | |
| 498 | + | |
460 | 499 | | |
461 | 500 | | |
462 | 501 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
| 129 | + | |
| 130 | + | |
129 | 131 | | |
130 | 132 | | |
131 | 133 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
100 | | - | |
| 100 | + | |
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | | - | |
| 105 | + | |
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
| |||
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| 132 | + | |
| 133 | + | |
132 | 134 | | |
133 | 135 | | |
134 | | - | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
135 | 139 | | |
136 | 140 | | |
137 | 141 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
260 | | - | |
261 | | - | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
262 | 263 | | |
263 | | - | |
264 | | - | |
| 264 | + | |
| 265 | + | |
265 | 266 | | |
266 | | - | |
| 267 | + | |
267 | 268 | | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
274 | 279 | | |
275 | 280 | | |
276 | 281 | | |
| |||
Lines changed: 8 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
71 | 76 | | |
72 | 77 | | |
73 | 78 | | |
| |||
195 | 200 | | |
196 | 201 | | |
197 | 202 | | |
198 | | - | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
199 | 206 | | |
200 | 207 | | |
201 | 208 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | | - | |
| 85 | + | |
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | | - | |
| 217 | + | |
218 | 218 | | |
219 | 219 | | |
220 | 220 | | |
| |||
0 commit comments