Title | Can't destroy an allocation point with a reserve |
Status | open |
Priority | nice |
Assigned user | Gareth Rees |
Organization | Ravenbrook |
Description | If you call mps_ap_create_k to create an allocation point, call mps_reserve to reserve an object, and then call mps_ap_destroy, then you get an assertion failure here: buffer.c:356: BufferIsReady(buffer) But is this really necessary? The allocation point protocol says that you have to call mps_commit, but in languages with exceptions, it might be the case that an exception occurs between mps_reserve and mps_commit, and at that point the application might want to exit cleanly by destroying MPS data structures. |
Analysis | It's not clear what this assertion protects (other than the allocation point protocol itself). |
How found | manual_test |
Evidence | None |
Created by | Gareth Rees |
Created on | 2018-07-06 14:33:12 |
Last modified by | Gareth Rees |
Last modified on | 2018-07-06 14:33:12 |
History | 2018-07-06 GDR Created. |