summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-08-11 11:28:41 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2020-08-11 11:28:41 +0200
commit013dcab34443c102bfabf2c48a5d9c79cafe660e (patch)
tree469da663100efd6b7eba4c271a4389189336822e
parentdd858460bb7ad230449fa9643e1206b74b6355de (diff)
parent183b853dc636883d4fb8134dcd39958dc628389e (diff)
downloadphp-git-013dcab34443c102bfabf2c48a5d9c79cafe660e.tar.gz
Merge branch 'PHP-7.4' into master
* PHP-7.4: Fix #48585: com_load_typelib holds reference, fails on second call
-rw-r--r--ext/com_dotnet/com_com.c6
-rw-r--r--ext/com_dotnet/com_extension.c4
2 files changed, 3 insertions, 7 deletions
diff --git a/ext/com_dotnet/com_com.c b/ext/com_dotnet/com_com.c
index b024f092f5..a279869d28 100644
--- a/ext/com_dotnet/com_com.c
+++ b/ext/com_dotnet/com_com.c
@@ -244,7 +244,7 @@ PHP_METHOD(com, __construct)
TL = php_com_load_typelib_via_cache(typelib_name, obj->code_page, &cached);
if (TL) {
- if (COMG(autoreg_on) && !cached) {
+ if (COMG(autoreg_on)) {
php_com_import_typelib(TL, mode, obj->code_page);
}
@@ -834,9 +834,7 @@ PHP_FUNCTION(com_load_typelib)
php_com_initialize();
pTL = php_com_load_typelib_via_cache(name, codepage, &cached);
if (pTL) {
- if (cached) {
- RETVAL_TRUE;
- } else if (php_com_import_typelib(pTL, cs ? CONST_CS : 0, codepage) == SUCCESS) {
+ if (php_com_import_typelib(pTL, cs ? CONST_CS : 0, codepage) == SUCCESS) {
RETVAL_TRUE;
}
diff --git a/ext/com_dotnet/com_extension.c b/ext/com_dotnet/com_extension.c
index 73b70f07ab..28909bee87 100644
--- a/ext/com_dotnet/com_extension.c
+++ b/ext/com_dotnet/com_extension.c
@@ -115,9 +115,7 @@ static PHP_INI_MH(OnTypeLibFileUpdate)
}
if ((pTL = php_com_load_typelib_via_cache(typelib_name, COMG(code_page), &cached)) != NULL) {
- if (!cached) {
- php_com_import_typelib(pTL, mode, COMG(code_page));
- }
+ php_com_import_typelib(pTL, mode, COMG(code_page));
ITypeLib_Release(pTL);
}
}