| 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. |