From: Abhisek Datta Date: 2007-08-07T17:24:41+09:00 Subject: [PATCH] ext/Win32API - Manual FreeLibrary support ------=_Part_108182_18151559.1186475082508 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline I think it will be great if Win32API allows manual free'ing of dynamically loaded libraries instead of waiting for GC to free it. Attached patch adds free/Free method in Win32API class for manual FreeLibrary() call. -abhisek ------=_Part_108182_18151559.1186475082508 Content-Type: application/octet-stream; name=20070807-ext_Win32API_manual_freelib.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_f524fzpk Content-Disposition: attachment; filename="20070807-ext_Win32API_manual_freelib.patch" SW5kZXg6IGV4dC9XaW4zMkFQSS9XaW4zMkFQSS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGV4dC9XaW4zMkFQ SS9XaW4zMkFQSS5jCShyZXZpc2lvbiAxMjg4OCkKKysrIGV4dC9XaW4zMkFQSS9XaW4zMkFQSS5j CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw4IEBACiBXaW4zMkFQSV9GcmVlTGlicmFyeSho ZGxsKQogICAgIEhJTlNUQU5DRSBoZGxsOwogewotICAgIEZyZWVMaWJyYXJ5KGhkbGwpOworICAg IGlmKGhkbGwpCisgICAgICAgIEZyZWVMaWJyYXJ5KGhkbGwpOwogfQogCiBzdGF0aWMgVkFMVUUK QEAgLTE1NCw2ICsxNTUsNyBAQAogICAgIH0gcGFyYW07CiAjZGVmaW5lIHBhcmFtcyBwYXJhbS5w YXJhbXMKIAorICAgIFZBTFVFIG9ial9kbGwgPSByYl9pdl9nZXQob2JqLCAiX19kbGxfXyIpOwog ICAgIFZBTFVFIG9ial9wcm9jID0gcmJfaXZfZ2V0KG9iaiwgIl9fcHJvY19fIik7CiAgICAgVkFM VUUgb2JqX2ltcG9ydCA9IHJiX2l2X2dldChvYmosICJfX2ltcG9ydF9fIik7CiAgICAgVkFMVUUg b2JqX2V4cG9ydCA9IHJiX2l2X2dldChvYmosICJfX2V4cG9ydF9fIik7CkBAIC0xNjEsNiArMTYz LDggQEAKICAgICBpbnQgaXRlbXMgPSByYl9zY2FuX2FyZ3MoYXJnYywgYXJndiwgIjAqIiwgJmFy Z3MpOwogICAgIGludCBuaW1wb3J0ID0gUkFSUkFZKG9ial9pbXBvcnQpLT5sZW47CiAKKyAgICBp ZihOSUxfUChvYmpfZGxsKSkKKyAgICAgICAgcmJfcmFpc2UocmJfZVJ1bnRpbWVFcnJvciwgInN0 YWxlL2ZyZWVkIG9iamVjdCIpOwogCiAgICAgaWYgKGl0ZW1zICE9IG5pbXBvcnQpCiAJcmJfcmFp c2UocmJfZVJ1bnRpbWVFcnJvciwgIndyb25nIG51bWJlciBvZiBwYXJhbWV0ZXJzOiBleHBlY3Rl ZCAlZCwgZ290ICVkIiwKQEAgLTIwNSwxMSArMjA5LDM0IEBACiAgICAgfQogfQogCitzdGF0aWMg VkFMVUUKK1dpbjMyQVBJX0ZyZWUoVkFMVUUgc2VsZikKK3sKKyAgICBWQUxVRSB2OworICAgIEhJ TlNUQU5DRSBoZGxsOworCisgICAgdiA9IHJiX2l2X2dldChzZWxmLCAiX19oZGxsX18iKTsKKyAg ICBpZihOSUxfUCh2KSkKKwlyZXR1cm4gUWZhbHNlOworICAgIAorICAgIERhdGFfR2V0X1N0cnVj dCh2LCBISU5TVEFOQ0UsIChISU5TVEFOQ0UqKWhkbGwpOworICAgIGlmKCFGcmVlTGlicmFyeSho ZGxsKSkgCisJcmJfcmFpc2UocmJfZVJ1bnRpbWVFcnJvciwgImZhaWxlZCB0byBmcmVlIGxpYnJh cnkgKGVycm9yIGNvZGU6ICVkKSIsIEdldExhc3RFcnJvcigpKTsKKwkKKyAgICBEQVRBX1BUUih2 KSA9IE5VTEw7CisgICAgcmJfaXZfc2V0KHNlbGYsICJfX2hkbGxfXyIsIFFuaWwpOworICAgIHJi X2l2X3NldChzZWxmLCAiX19kbGxfXyIsIFFuaWwpOworCisgICAgcmV0dXJuIFF0cnVlOworfQor CiB2b2lkCiBJbml0X1dpbjMyQVBJKCkKIHsKICAgICBWQUxVRSBjV2luMzJBUEkgPSByYl9kZWZp bmVfY2xhc3MoIldpbjMyQVBJIiwgcmJfY09iamVjdCk7CiAgICAgcmJfZGVmaW5lX21ldGhvZChj V2luMzJBUEksICJpbml0aWFsaXplIiwgV2luMzJBUElfaW5pdGlhbGl6ZSwgNCk7CiAgICAgcmJf ZGVmaW5lX21ldGhvZChjV2luMzJBUEksICJjYWxsIiwgV2luMzJBUElfQ2FsbCwgLTEpOworICAg IHJiX2RlZmluZV9tZXRob2QoY1dpbjMyQVBJLCAiZnJlZSIsIFdpbjMyQVBJX0ZyZWUsIDApOwog ICAgIHJiX2RlZmluZV9hbGlhcyhjV2luMzJBUEksICAiQ2FsbCIsICJjYWxsIik7CisgICAgcmJf ZGVmaW5lX2FsaWFzKGNXaW4zMkFQSSwgIkZyZWUiLCAiZnJlZSIpOwogfQo= ------=_Part_108182_18151559.1186475082508--