Fix #48585: com_load_typelib holds reference, fails on second call #5934
+3
−7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Whether the type library is cached is actually irrelevant here; what
matters is that the symbols are imported, and since these are not
cached, we have to import them for every request. And we cannot cache
the symbols, because the import depends on the current codepage, but
the codepage is a
PHP_INI_ALL
setting.I'm not sure what to do with the
cached
parameter ofphp_com_load_typelib_via_cache()
; it's no longer needed after this change, but the function is exported, although it is declared in the internal header. Maybe just stick with the param for PHP 7, and remove for PHP 8?I'm also not sure if it's worth writing a PHPT, because that would likely require the built-in webserver to be able to do multiple requests.