gh-103583: Isolate CJK codec modules#103869
Conversation
Lifetime should be guaranteed, since each MultibyteCodecObjects owns a reference the cjk codec module that owns the memory of the MultibyteCodec struct.
664f961 to
f6ed5df
Compare
April 26, 2023 13:13
|
This approach exploits the dependency introduced in gh-103589; we know for sure that the _codec* extension modules will outlive _multibytecodec. This means we can store the cjk codec module state safely in the codec struct and modify the various codec handlers to accept the codec struct (iso. |
Sorry, something went wrong.
|
🤖 New build scheduled with the buildbot fleet by @erlend-aasland for commit ef983c4 🤖 If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again. |
Sorry, something went wrong.
|
BTW, I removed the |
Sorry, something went wrong.
|
Also, we can split out cb2c9e7 as a separate PR. That may be beneficial regarding to future bisects; it will also make this PR easier to review. Similarly, f6ed5df can be split up to do the arg spec changes first, and then move stuff to module state afterwards. |
Sorry, something went wrong.
|
(Pulling in main to get the latest ref. leak fixes by Jelle) |
Sorry, something went wrong.
|
🤖 New build scheduled with the buildbot fleet by @erlend-aasland for commit dec79a7 🤖 If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again. |
Sorry, something went wrong.
corona10
left a comment
There was a problem hiding this comment.
LGTM, This is quite a complicated but nice approach. But nothing can be better than this.
Thanks for the hard work!
Sorry, something went wrong.
|
Thanks for the review, Dong-hee! Yes, it is complicated, but as shown in my competing PRs, other approaches are even more complicated. |
Sorry, something went wrong.
Thanks, Victor :) This was a tricky one! |
Sorry, something went wrong.
edited by bedevere-bot
LoadingUh oh!
There was an error while loading. Please reload this page.
Copy link Copy MarkdownSorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.