From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21951 invoked by alias); 9 Mar 2015 16:01:38 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 21924 invoked by uid 89); 9 Mar 2015 16:01:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_FROM_URIBL_PCCC,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-oi0-f42.google.com Received: from mail-oi0-f42.google.com (HELO mail-oi0-f42.google.com) (209.85.218.42) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Mon, 09 Mar 2015 16:01:30 +0000 Received: by oiav63 with SMTP id v63so30153842oia.13 for ; Mon, 09 Mar 2015 09:01:29 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.60.79.10 with SMTP id f10mr22136074oex.8.1425916888893; Mon, 09 Mar 2015 09:01:28 -0700 (PDT) Received: by 10.202.67.130 with HTTP; Mon, 9 Mar 2015 09:01:28 -0700 (PDT) Date: Mon, 09 Mar 2015 16:01:00 -0000 Message-ID: Subject: [patch] Remove is_merge_section_for From: =?UTF-8?Q?Rafael_Esp=C3=ADndola?= To: Binutils Cc: Cary Coutant Content-Type: multipart/mixed; boundary=089e01227e90a4c3f80510dd258f X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00070.txt.bz2 --089e01227e90a4c3f80510dd258f Content-Type: text/plain; charset=UTF-8 Content-length: 452 Hi Cary, Now that Input_merge_map has an Output_section_data, we can use it in implementing find_merge_section and replace the only use of is_merge_section_for with it. This simplifies the code a bit and is faster. Linking chromium goes from 6173.193320 task-clock (msec) # 0.999 CPUs utilized ( +- 0.62% ) to 5693.481663 task-clock (msec) # 0.999 CPUs utilized ( +- 0.49% ) Cheers, Rafael --089e01227e90a4c3f80510dd258f Content-Type: text/x-patch; charset=US-ASCII; name="t.patch" Content-Disposition: attachment; filename="t.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i7222ppb0 Content-length: 16080 ZGlmZiAtLWdpdCBhL2dvbGQvbWVyZ2UuY2MgYi9nb2xkL21lcmdlLmNjCmlu ZGV4IDVkOTNjNzQuLjU0N2FhNDQgMTAwNjQ0Ci0tLSBhL2dvbGQvbWVyZ2Uu Y2MKKysrIGIvZ29sZC9tZXJnZS5jYwpAQCAtMTc5LDEyICsxNzksMTMgQEAg T2JqZWN0X21lcmdlX21hcDo6Z2V0X291dHB1dF9vZmZzZXQodW5zaWduZWQg aW50IHNobmR4LAogCiAvLyBSZXR1cm4gd2hldGhlciB0aGlzIGlzIHRoZSBt ZXJnZSBtYXAgZm9yIHNlY3Rpb24gU0hORFguCiAKLWJvb2wKLU9iamVjdF9t ZXJnZV9tYXA6OmlzX21lcmdlX3NlY3Rpb25fZm9yKGNvbnN0IE91dHB1dF9z ZWN0aW9uX2RhdGEqIG91dHB1dF9kYXRhLAotCQkJCSAgICAgICB1bnNpZ25l ZCBpbnQgc2huZHgpCi17Ci0gIElucHV0X21lcmdlX21hcCogbWFwID0gdGhp cy0+Z2V0X2lucHV0X21lcmdlX21hcChzaG5keCk7Ci0gIHJldHVybiBtYXAg IT0gTlVMTCAmJiBtYXAtPm91dHB1dF9kYXRhID09IG91dHB1dF9kYXRhOwor Y29uc3QgT3V0cHV0X3NlY3Rpb25fZGF0YSoKK09iamVjdF9tZXJnZV9tYXA6 OmZpbmRfbWVyZ2Vfc2VjdGlvbih1bnNpZ25lZCBpbnQgc2huZHgpIGNvbnN0 IHsKKyAgY29uc3QgT2JqZWN0X21lcmdlX21hcDo6SW5wdXRfbWVyZ2VfbWFw KiBtYXAgPQorICAgIHRoaXMtPmdldF9pbnB1dF9tZXJnZV9tYXAoc2huZHgp OworICBpZiAobWFwID09IE5VTEwpCisgICAgcmV0dXJuIE5VTEw7CisgIHJl dHVybiBtYXAtPm91dHB1dF9kYXRhOwogfQogCiAvLyBJbml0aWFsaXplIGEg bWFwcGluZyBmcm9tIGlucHV0IG9mZnNldHMgdG8gb3V0cHV0IGFkZHJlc3Nl cy4KZGlmZiAtLWdpdCBhL2dvbGQvbWVyZ2UuaCBiL2dvbGQvbWVyZ2UuaApp bmRleCAzZTUwMGJjLi41YjEyN2U5IDEwMDY0NAotLS0gYS9nb2xkL21lcmdl LmgKKysrIGIvZ29sZC9tZXJnZS5oCkBAIC03MSw5ICs3MSw4IEBAIGNsYXNz IE9iamVjdF9tZXJnZV9tYXAKIAkJICAgIHNlY3Rpb25fb2Zmc2V0X3R5cGUg b2Zmc2V0LAogCQkgICAgc2VjdGlvbl9vZmZzZXRfdHlwZSogb3V0cHV0X29m ZnNldCk7CiAKLSAgLy8gUmV0dXJuIHdoZXRoZXIgdGhpcyBpcyB0aGUgbWVy Z2UgbWFwIGZvciBzZWN0aW9uIFNITkRYLgotICBib29sCi0gIGlzX21lcmdl X3NlY3Rpb25fZm9yKGNvbnN0IE91dHB1dF9zZWN0aW9uX2RhdGEqLCB1bnNp Z25lZCBpbnQgc2huZHgpOworICBjb25zdCBPdXRwdXRfc2VjdGlvbl9kYXRh KgorICBmaW5kX21lcmdlX3NlY3Rpb24odW5zaWduZWQgaW50IHNobmR4KSBj b25zdDsKIAogICAvLyBJbml0aWFsaXplIGFuIG1hcHBpbmcgZnJvbSBpbnB1 dCBvZmZzZXRzIHRvIG91dHB1dCBhZGRyZXNzZXMgZm9yCiAgIC8vIHNlY3Rp b24gU0hORFguICBTVEFSVElOR19BRERSRVNTIGlzIHRoZSBvdXRwdXQgYWRk cmVzcyBvZiB0aGUKQEAgLTE1MSw2ICsxNTAsMTEgQEAgY2xhc3MgT2JqZWN0 X21lcmdlX21hcAogICBJbnB1dF9tZXJnZV9tYXAqCiAgIGdldF9pbnB1dF9t ZXJnZV9tYXAodW5zaWduZWQgaW50IHNobmR4KTsKIAorICBjb25zdCBJbnB1 dF9tZXJnZV9tYXAqCisgIGdldF9pbnB1dF9tZXJnZV9tYXAodW5zaWduZWQg aW50IHNobmR4KSBjb25zdCB7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8T2Jq ZWN0X21lcmdlX21hcCo+KHRoaXMpLT5nZXRfaW5wdXRfbWVyZ2VfbWFwKHNo bmR4KTsKKyAgfQorCiAgIC8vIEdldCBvciBtYWtlIHRoZSBJbnB1dF9tZXJn ZV9tYXAgdG8gdXNlIGZvciB0aGUgc2VjdGlvbiBTSE5EWAogICAvLyB3aXRo IE1FUkdFX01BUC4KICAgSW5wdXRfbWVyZ2VfbWFwKgpkaWZmIC0tZ2l0IGEv Z29sZC9vYmplY3QuY2MgYi9nb2xkL29iamVjdC5jYwppbmRleCA4NGU0NTY4 Li5mNmM3YTM3IDEwMDY0NAotLS0gYS9nb2xkL29iamVjdC5jYworKysgYi9n b2xkL29iamVjdC5jYwpAQCAtMzAzLDE0ICszMDMsMTIgQEAgUmVsb2JqOjpt ZXJnZV9vdXRwdXRfb2Zmc2V0KHVuc2lnbmVkIGludCBzaG5keCwgc2VjdGlv bl9vZmZzZXRfdHlwZSBvZmZzZXQsCiAgIHJldHVybiBvYmplY3RfbWVyZ2Vf bWFwLT5nZXRfb3V0cHV0X29mZnNldChzaG5keCwgb2Zmc2V0LCBwb3V0cHV0 KTsKIH0KIAotYm9vbAotUmVsb2JqOjppc19tZXJnZV9zZWN0aW9uX2Zvcihj b25zdCBPdXRwdXRfc2VjdGlvbl9kYXRhKiBvdXRwdXRfZGF0YSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNobmR4KSBj b25zdCB7Citjb25zdCBPdXRwdXRfc2VjdGlvbl9kYXRhKgorUmVsb2JqOjpm aW5kX21lcmdlX3NlY3Rpb24odW5zaWduZWQgaW50IHNobmR4KSBjb25zdCB7 CiAgIE9iamVjdF9tZXJnZV9tYXAqIG9iamVjdF9tZXJnZV9tYXAgPSB0aGlz LT5vYmplY3RfbWVyZ2VfbWFwXzsKICAgaWYgKG9iamVjdF9tZXJnZV9tYXAg PT0gTlVMTCkKLSAgICByZXR1cm4gZmFsc2U7Ci0gIHJldHVybiBvYmplY3Rf bWVyZ2VfbWFwLT5pc19tZXJnZV9zZWN0aW9uX2ZvcihvdXRwdXRfZGF0YSwg c2huZHgpOwotCisgICAgcmV0dXJuIE5VTEw7CisgIHJldHVybiBvYmplY3Rf bWVyZ2VfbWFwLT5maW5kX21lcmdlX3NlY3Rpb24oc2huZHgpOwogfQogCiAv LyBUbyBjb3B5IHRoZSBzeW1ib2xzIGRhdGEgcmVhZCBmcm9tIHRoZSBmaWxl IHRvIGEgbG9jYWwgZGF0YSBzdHJ1Y3R1cmUuCmRpZmYgLS1naXQgYS9nb2xk L29iamVjdC5oIGIvZ29sZC9vYmplY3QuaAppbmRleCAxMjZiZmY1Li40OGVj OWJiIDEwMDY0NAotLS0gYS9nb2xkL29iamVjdC5oCisrKyBiL2dvbGQvb2Jq ZWN0LmgKQEAgLTEyMTgsOSArMTIxOCw4IEBAIGNsYXNzIFJlbG9iaiA6IHB1 YmxpYyBPYmplY3QKICAgbWVyZ2Vfb3V0cHV0X29mZnNldCh1bnNpZ25lZCBp bnQgc2huZHgsIHNlY3Rpb25fb2Zmc2V0X3R5cGUgb2Zmc2V0LAogICAgICAg ICAgICAgICAgICAgICAgIHNlY3Rpb25fb2Zmc2V0X3R5cGUgKnBvdXRwdXQp IGNvbnN0OwogCi0gIGJvb2wKLSAgaXNfbWVyZ2Vfc2VjdGlvbl9mb3IoY29u c3QgT3V0cHV0X3NlY3Rpb25fZGF0YSogb3V0cHV0X2RhdGEsCi0gICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzaG5keCkgY29uc3Q7Cisg IGNvbnN0IE91dHB1dF9zZWN0aW9uX2RhdGEqCisgIGZpbmRfbWVyZ2Vfc2Vj dGlvbih1bnNpZ25lZCBpbnQgc2huZHgpIGNvbnN0OwogCiAgIC8vIFJlY29y ZCB0aGUgcmVsb2NhdGFibGUgcmVsb2MgaW5mbyBmb3IgYW4gaW5wdXQgcmVs b2Mgc2VjdGlvbi4KICAgdm9pZApkaWZmIC0tZ2l0IGEvZ29sZC9vdXRwdXQu Y2MgYi9nb2xkL291dHB1dC5jYwppbmRleCA4ZmFhMDQwLi41MjAwNzU2IDEw MDY0NAotLS0gYS9nb2xkL291dHB1dC5jYworKysgYi9nb2xkL291dHB1dC5j YwpAQCAtMjIwMSwxOCArMjIwMSw2IEBAIE91dHB1dF9zZWN0aW9uOjpJbnB1 dF9zZWN0aW9uOjpvdXRwdXRfb2Zmc2V0KAogICAgIH0KIH0KIAotLy8gUmV0 dXJuIHdoZXRoZXIgdGhpcyBpcyB0aGUgbWVyZ2Ugc2VjdGlvbiBmb3IgdGhl IGlucHV0IHNlY3Rpb24KLS8vIFNITkRYIGluIE9CSkVDVC4KLQotaW5saW5l IGJvb2wKLU91dHB1dF9zZWN0aW9uOjpJbnB1dF9zZWN0aW9uOjppc19tZXJn ZV9zZWN0aW9uX2Zvcihjb25zdCBSZWxvYmoqIG9iamVjdCwKLQkJCQkJCSAg ICB1bnNpZ25lZCBpbnQgc2huZHgpIGNvbnN0Ci17Ci0gIGlmICh0aGlzLT5p c19pbnB1dF9zZWN0aW9uKCkpCi0gICAgcmV0dXJuIGZhbHNlOwotICByZXR1 cm4gb2JqZWN0LT5pc19tZXJnZV9zZWN0aW9uX2Zvcih0aGlzLT51Ml8ucG9z ZCwgc2huZHgpOwotfQotCiAvLyBXcml0ZSBvdXQgdGhlIGRhdGEuICBXZSBk b24ndCBoYXZlIHRvIGRvIGFueXRoaW5nIGZvciBhbiBpbnB1dAogLy8gc2Vj dGlvbi0tdGhleSBhcmUgaGFuZGxlZCB2aWEgT2JqZWN0OjpyZWxvY2F0ZS0t YnV0IHRoaXMgaXMgd2hlcmUKIC8vIHdlIHdyaXRlIG91dCB0aGUgZGF0YSBm b3IgYW4gT3V0cHV0X3NlY3Rpb25fZGF0YS4KQEAgLTI2OTgsOSArMjY4Niw2 IEBAIE91dHB1dF9zZWN0aW9uOjphZGRfbWVyZ2VfaW5wdXRfc2VjdGlvbihS ZWxvYmoqIG9iamVjdCwgdW5zaWduZWQgaW50IHNobmR4LAogCSAgdGhpcy0+ bG9va3VwX21hcHNfLT5hZGRfbWVyZ2Vfc2VjdGlvbihtc3AsIHBvbWIpOwog CX0KIAotICAgICAgLy8gQWRkIGlucHV0IHNlY3Rpb24gdG8gbmV3IG1lcmdl IHNlY3Rpb24gYW5kIGxpbmsgaW5wdXQgc2VjdGlvbiB0byBuZXcKLSAgICAg IC8vIG1lcmdlIHNlY3Rpb24gaW4gbWFwLgotICAgICAgdGhpcy0+bG9va3Vw X21hcHNfLT5hZGRfbWVyZ2VfaW5wdXRfc2VjdGlvbihvYmplY3QsIHNobmR4 LCBwb21iKTsKICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgZWxzZQpA QCAtMjg1NywxNiArMjg0MiwxNCBAQCBPdXRwdXRfc2VjdGlvbjo6dXBkYXRl X2ZsYWdzX2Zvcl9pbnB1dF9zZWN0aW9uKGVsZmNwcDo6RWxmX1h3b3JkIGZs YWdzKQogLy8gRmluZCB0aGUgbWVyZ2Ugc2VjdGlvbiBpbnRvIHdoaWNoIGFu IGlucHV0IHNlY3Rpb24gd2l0aCBpbmRleCBTSE5EWCBpbgogLy8gT0JKRUNU IGhhcyBiZWVuIGFkZGVkLiAgUmV0dXJuIE5VTEwgaWYgbm9uZSBmb3VuZC4K IAotT3V0cHV0X3NlY3Rpb25fZGF0YSoKK2NvbnN0IE91dHB1dF9zZWN0aW9u X2RhdGEqCiBPdXRwdXRfc2VjdGlvbjo6ZmluZF9tZXJnZV9zZWN0aW9uKGNv bnN0IFJlbG9iaiogb2JqZWN0LAogCQkJCSAgIHVuc2lnbmVkIGludCBzaG5k eCkgY29uc3QKIHsKLSAgaWYgKCF0aGlzLT5sb29rdXBfbWFwc18tPmlzX3Zh bGlkKCkpCi0gICAgdGhpcy0+YnVpbGRfbG9va3VwX21hcHMoKTsKLSAgcmV0 dXJuIHRoaXMtPmxvb2t1cF9tYXBzXy0+ZmluZF9tZXJnZV9zZWN0aW9uKG9i amVjdCwgc2huZHgpOworICByZXR1cm4gb2JqZWN0LT5maW5kX21lcmdlX3Nl Y3Rpb24oc2huZHgpOwogfQogCi0vLyBCdWlsZCB0aGUgbG9va3VwIG1hcHMg Zm9yIG1lcmdlIGFuZCByZWxheGVkIHNlY3Rpb25zLiAgVGhpcyBpcyBuZWVk cworLy8gQnVpbGQgdGhlIGxvb2t1cCBtYXBzIGZvciByZWxheGVkIHNlY3Rp b25zLiAgVGhpcyBpcyBuZWVkcwogLy8gdG8gYmUgZGVjbGFyZWQgYXMgYSBj b25zdCBtZXRob2RzIHNvIHRoYXQgaXQgaXMgY2FsbGFibGUgd2l0aCBhIGNv bnN0CiAvLyBPdXRwdXRfc2VjdGlvbiBwb2ludGVyLiAgVGhlIG1ldGhvZCBv bmx5IHVwZGF0ZXMgc3RhdGVzIG9mIHRoZSBtYXBzLgogCkBAIC0yODc4LDI0 ICsyODYxLDcgQEAgT3V0cHV0X3NlY3Rpb246OmJ1aWxkX2xvb2t1cF9tYXBz KCkgY29uc3QKICAgICAgICBwICE9IHRoaXMtPmlucHV0X3NlY3Rpb25zXy5l bmQoKTsKICAgICAgICArK3ApCiAgICAgewotICAgICAgaWYgKHAtPmlzX21l cmdlX3NlY3Rpb24oKSkKLQl7Ci0JICBPdXRwdXRfbWVyZ2VfYmFzZSogcG9t YiA9IHAtPm91dHB1dF9tZXJnZV9iYXNlKCk7Ci0JICBNZXJnZV9zZWN0aW9u X3Byb3BlcnRpZXMgbXNwKHBvbWItPmlzX3N0cmluZygpLCBwb21iLT5lbnRz aXplKCksCi0JCQkJICAgICAgIHBvbWItPmFkZHJhbGlnbigpKTsKLQkgIHRo aXMtPmxvb2t1cF9tYXBzXy0+YWRkX21lcmdlX3NlY3Rpb24obXNwLCBwb21i KTsKLQkgIGZvciAoT3V0cHV0X21lcmdlX2Jhc2U6OklucHV0X3NlY3Rpb25z Ojpjb25zdF9pdGVyYXRvciBpcyA9Ci0JCSBwb21iLT5pbnB1dF9zZWN0aW9u c19iZWdpbigpOwotCSAgICAgICBpcyAhPSBwb21iLT5pbnB1dF9zZWN0aW9u c19lbmQoKTsKLQkgICAgICAgKytpcykKLQkgICAgewotCSAgICAgIGNvbnN0 IENvbnN0X3NlY3Rpb25faWQmIGNzaWQgPSAqaXM7Ci0JICAgIHRoaXMtPmxv b2t1cF9tYXBzXy0+YWRkX21lcmdlX2lucHV0X3NlY3Rpb24oY3NpZC5maXJz dCwKLQkJCQkJCQljc2lkLnNlY29uZCwgcG9tYik7Ci0JICAgIH0KLQotCX0K LSAgICAgIGVsc2UgaWYgKHAtPmlzX3JlbGF4ZWRfaW5wdXRfc2VjdGlvbigp KQorICAgICAgaWYgKHAtPmlzX3JlbGF4ZWRfaW5wdXRfc2VjdGlvbigpKQog CXsKIAkgIE91dHB1dF9yZWxheGVkX2lucHV0X3NlY3Rpb24qIHBvcmlzID0g cC0+cmVsYXhlZF9pbnB1dF9zZWN0aW9uKCk7CiAJICB0aGlzLT5sb29rdXBf bWFwc18tPmFkZF9yZWxheGVkX2lucHV0X3NlY3Rpb24ocG9yaXMtPnJlbG9i aigpLApAQCAtMjkzNSw3ICsyOTAxLDggQEAgT3V0cHV0X3NlY3Rpb246Omlz X2lucHV0X2FkZHJlc3NfbWFwcGVkKGNvbnN0IFJlbG9iaiogb2JqZWN0LAog ICAgIHsKICAgICAgIHNlY3Rpb25fb2Zmc2V0X3R5cGUgb3V0cHV0X29mZnNl dDsKICAgICAgIGJvb2wgZm91bmQgPSBwb3NkLT5vdXRwdXRfb2Zmc2V0KG9i amVjdCwgc2huZHgsIG9mZnNldCwgJm91dHB1dF9vZmZzZXQpOwotICAgICAg Z29sZF9hc3NlcnQoZm91bmQpOworICAgICAgaWYgKCFmb3VuZCkKKyAgICAg ICAgcmV0dXJuIGZhbHNlOwogICAgICAgcmV0dXJuIG91dHB1dF9vZmZzZXQg IT0gLTE7CiAgICAgfQogCkBAIC0zMDQ1LDYgKzMwMTIsMTAgQEAgT3V0cHV0 X3NlY3Rpb246OmZpbmRfc3RhcnRpbmdfb3V0cHV0X2FkZHJlc3MoY29uc3Qg UmVsb2JqKiBvYmplY3QsCiAJCQkJCSAgICAgdW5zaWduZWQgaW50IHNobmR4 LAogCQkJCQkgICAgIHVpbnQ2NF90KiBwYWRkcikgY29uc3QKIHsKKyAgY29u c3QgT3V0cHV0X3NlY3Rpb25fZGF0YSogZGF0YSA9IHRoaXMtPmZpbmRfbWVy Z2Vfc2VjdGlvbihvYmplY3QsIHNobmR4KTsKKyAgaWYgKCFkYXRhKQorICAg IHJldHVybiBmYWxzZTsKKwogICAvLyBGSVhNRTogVGhpcyBiZWNvbWVzIGEg Ym90dGxlLW5lY2sgaWYgd2UgaGF2ZSBtYW55IHJlbGF4ZWQgc2VjdGlvbnMu CiAgIC8vIExvb2tpbmcgdXAgdGhlIG1lcmdlIHNlY3Rpb24gbWFwIGRvZXMg bm90IGFsd2F5cyB3b3JrIGFzIHdlIHNvbWV0aW1lcwogICAvLyBmaW5kIGEg bWVyZ2Ugc2VjdGlvbiB3aXRob3V0IGl0cyBhZGRyZXNzIHNldC4KQEAgLTMw NTksNyArMzAzMCw3IEBAIE91dHB1dF9zZWN0aW9uOjpmaW5kX3N0YXJ0aW5n X291dHB1dF9hZGRyZXNzKGNvbnN0IFJlbG9iaiogb2JqZWN0LAogICAgICAg Ly8gbWV0aG9kIHRvIGdldCB0aGUgb3V0cHV0IG9mZnNldCBvZiBpbnB1dCBv ZmZzZXQgMC4KICAgICAgIC8vIFVuZm9ydHVuYXRlbHkgd2UgZG9uJ3Qga25v dyBmb3Igc3VyZSB0aGF0IGlucHV0IG9mZnNldCAwIGlzCiAgICAgICAvLyBt YXBwZWQgYXQgYWxsLgotICAgICAgaWYgKHAtPmlzX21lcmdlX3NlY3Rpb25f Zm9yKG9iamVjdCwgc2huZHgpKQorICAgICAgaWYgKCFwLT5pc19pbnB1dF9z ZWN0aW9uKCkgJiYgcC0+b3V0cHV0X3NlY3Rpb25fZGF0YSgpID09IGRhdGEp CiAJewogCSAgKnBhZGRyID0gYWRkcjsKIAkgIHJldHVybiB0cnVlOwpAQCAt Mzg4NSwyMCArMzg1Niw3IEBAIE91dHB1dF9zZWN0aW9uOjphZGRfc2NyaXB0 X2lucHV0X3NlY3Rpb24oY29uc3QgSW5wdXRfc2VjdGlvbiYgc2lzKQogICAv LyBVcGRhdGUgZmFzdCBsb29rdXAgbWFwcyBpZiBuZWNlc3NhcnkuCiAgIGlm ICh0aGlzLT5sb29rdXBfbWFwc18tPmlzX3ZhbGlkKCkpCiAgICAgewotICAg ICAgaWYgKHNpcy5pc19tZXJnZV9zZWN0aW9uKCkpCi0JewotCSAgT3V0cHV0 X21lcmdlX2Jhc2UqIHBvbWIgPSBzaXMub3V0cHV0X21lcmdlX2Jhc2UoKTsK LQkgIE1lcmdlX3NlY3Rpb25fcHJvcGVydGllcyBtc3AocG9tYi0+aXNfc3Ry aW5nKCksIHBvbWItPmVudHNpemUoKSwKLQkJCQkgICAgICAgcG9tYi0+YWRk cmFsaWduKCkpOwotCSAgdGhpcy0+bG9va3VwX21hcHNfLT5hZGRfbWVyZ2Vf c2VjdGlvbihtc3AsIHBvbWIpOwotCSAgZm9yIChPdXRwdXRfbWVyZ2VfYmFz ZTo6SW5wdXRfc2VjdGlvbnM6OmNvbnN0X2l0ZXJhdG9yIHAgPQotCQkgcG9t Yi0+aW5wdXRfc2VjdGlvbnNfYmVnaW4oKTsKLQkgICAgICAgcCAhPSBwb21i LT5pbnB1dF9zZWN0aW9uc19lbmQoKTsKLQkgICAgICAgKytwKQotCSAgICB0 aGlzLT5sb29rdXBfbWFwc18tPmFkZF9tZXJnZV9pbnB1dF9zZWN0aW9uKHAt PmZpcnN0LCBwLT5zZWNvbmQsCi0JCQkJCQkJcG9tYik7Ci0JfQotICAgICAg ZWxzZSBpZiAoc2lzLmlzX3JlbGF4ZWRfaW5wdXRfc2VjdGlvbigpKQorICAg ICAgaWYgKHNpcy5pc19yZWxheGVkX2lucHV0X3NlY3Rpb24oKSkKIAl7CiAJ ICBPdXRwdXRfcmVsYXhlZF9pbnB1dF9zZWN0aW9uKiBwb3JpcyA9IHNpcy5y ZWxheGVkX2lucHV0X3NlY3Rpb24oKTsKIAkgIHRoaXMtPmxvb2t1cF9tYXBz Xy0+YWRkX3JlbGF4ZWRfaW5wdXRfc2VjdGlvbihwb3Jpcy0+cmVsb2JqKCks CmRpZmYgLS1naXQgYS9nb2xkL291dHB1dC5oIGIvZ29sZC9vdXRwdXQuaApp bmRleCBkYzExYzhmLi4zMThhZjM2IDEwMDY0NAotLS0gYS9nb2xkL291dHB1 dC5oCisrKyBiL2dvbGQvb3V0cHV0LmgKQEAgLTI4NTcsNyArMjg1Nyw3IEBA IGNsYXNzIE91dHB1dF9zZWN0aW9uX2xvb2t1cF9tYXBzCiAgcHVibGljOgog ICBPdXRwdXRfc2VjdGlvbl9sb29rdXBfbWFwcygpCiAgICAgOiBpc192YWxp ZF8odHJ1ZSksIG1lcmdlX3NlY3Rpb25zX2J5X3Byb3BlcnRpZXNfKCksCi0g ICAgICBtZXJnZV9zZWN0aW9uc19ieV9pZF8oKSwgcmVsYXhlZF9pbnB1dF9z ZWN0aW9uc19ieV9pZF8oKQorICAgICAgcmVsYXhlZF9pbnB1dF9zZWN0aW9u c19ieV9pZF8oKQogICB7IH0KIAogICAvLyBXaGV0aGVyIHRoZSBtYXBzIGFy ZSB2YWxpZC4KQEAgLTI4NzUsNyArMjg3NSw2IEBAIGNsYXNzIE91dHB1dF9z ZWN0aW9uX2xvb2t1cF9tYXBzCiAgIGNsZWFyKCkKICAgewogICAgIHRoaXMt Pm1lcmdlX3NlY3Rpb25zX2J5X3Byb3BlcnRpZXNfLmNsZWFyKCk7Ci0gICAg dGhpcy0+bWVyZ2Vfc2VjdGlvbnNfYnlfaWRfLmNsZWFyKCk7CiAgICAgdGhp cy0+cmVsYXhlZF9pbnB1dF9zZWN0aW9uc19ieV9pZF8uY2xlYXIoKTsKICAg ICAvLyBBIGNsZWFyZWQgbWFwIGlzIHZhbGlkLgogICAgIHRoaXMtPmlzX3Zh bGlkXyA9IHRydWU7CkBAIC0yODkyLDE3ICsyODkxLDYgQEAgY2xhc3MgT3V0 cHV0X3NlY3Rpb25fbG9va3VwX21hcHMKICAgICByZXR1cm4gcCAhPSB0aGlz LT5tZXJnZV9zZWN0aW9uc19ieV9wcm9wZXJ0aWVzXy5lbmQoKSA/IHAtPnNl Y29uZCA6IE5VTEw7CiAgIH0KIAotICAvLyBGaW5kIGEgbWVyZ2Ugc2VjdGlv biBieSBzZWN0aW9uIElEIG9mIGEgbWVyZ2UgaW5wdXQgc2VjdGlvbi4gIFJl dHVybiBOVUxMCi0gIC8vIGlmIG5vbmUgaXMgZm91bmQuCi0gIE91dHB1dF9t ZXJnZV9iYXNlKgotICBmaW5kX21lcmdlX3NlY3Rpb24oY29uc3QgT2JqZWN0 KiBvYmplY3QsIHVuc2lnbmVkIGludCBzaG5keCkgY29uc3QKLSAgewotICAg IGdvbGRfYXNzZXJ0KHRoaXMtPmlzX3ZhbGlkXyk7Ci0gICAgTWVyZ2Vfc2Vj dGlvbnNfYnlfaWQ6OmNvbnN0X2l0ZXJhdG9yIHAgPQotICAgICAgdGhpcy0+ bWVyZ2Vfc2VjdGlvbnNfYnlfaWRfLmZpbmQoQ29uc3Rfc2VjdGlvbl9pZChv YmplY3QsIHNobmR4KSk7Ci0gICAgcmV0dXJuIHAgIT0gdGhpcy0+bWVyZ2Vf c2VjdGlvbnNfYnlfaWRfLmVuZCgpID8gcC0+c2Vjb25kIDogTlVMTDsKLSAg fQotCiAgIC8vIEFkZCBhIG1lcmdlIHNlY3Rpb24gcG9pbnRlZCBieSBQT01C IHdpdGggcHJvcGVydGllcyBNU1AuCiAgIHZvaWQKICAgYWRkX21lcmdlX3Nl Y3Rpb24oY29uc3QgTWVyZ2Vfc2VjdGlvbl9wcm9wZXJ0aWVzJiBtc3AsCkBA IC0yOTE0LDE5ICsyOTAyLDYgQEAgY2xhc3MgT3V0cHV0X3NlY3Rpb25fbG9v a3VwX21hcHMKICAgICBnb2xkX2Fzc2VydChyZXN1bHQuc2Vjb25kKTsKICAg fQogCi0gIC8vIEFkZCBhIG1hcHBpbmcgZnJvbSBhIG1lcmdlZCBpbnB1dCBz ZWN0aW9uIGluIE9CSkVDVCB3aXRoIGluZGV4IFNITkRYCi0gIC8vIHRvIGEg bWVyZ2Ugb3V0cHV0IHNlY3Rpb24gcG9pbnRlZCBieSBQT01CLgotICB2b2lk Ci0gIGFkZF9tZXJnZV9pbnB1dF9zZWN0aW9uKGNvbnN0IE9iamVjdCogb2Jq ZWN0LCB1bnNpZ25lZCBpbnQgc2huZHgsCi0JCQkgIE91dHB1dF9tZXJnZV9i YXNlKiBwb21iKQotICB7Ci0gICAgQ29uc3Rfc2VjdGlvbl9pZCBjc2lkKG9i amVjdCwgc2huZHgpOwotICAgIHN0ZDo6cGFpcjxDb25zdF9zZWN0aW9uX2lk LCBPdXRwdXRfbWVyZ2VfYmFzZSo+IHZhbHVlKGNzaWQsIHBvbWIpOwotICAg IHN0ZDo6cGFpcjxNZXJnZV9zZWN0aW9uc19ieV9pZDo6aXRlcmF0b3IsIGJv b2w+IHJlc3VsdCA9Ci0gICAgICB0aGlzLT5tZXJnZV9zZWN0aW9uc19ieV9p ZF8uaW5zZXJ0KHZhbHVlKTsKLSAgICBnb2xkX2Fzc2VydChyZXN1bHQuc2Vj b25kKTsKLSAgfQotCiAgIC8vIEZpbmQgYSByZWxheGVkIGlucHV0IHNlY3Rp b24gb2YgT0JKRUNUIHdpdGggaW5kZXggU0hORFguCiAgIE91dHB1dF9yZWxh eGVkX2lucHV0X3NlY3Rpb24qCiAgIGZpbmRfcmVsYXhlZF9pbnB1dF9zZWN0 aW9uKGNvbnN0IE9iamVjdCogb2JqZWN0LCB1bnNpZ25lZCBpbnQgc2huZHgp IGNvbnN0CkBAIC0yOTUyLDEwICsyOTI3LDYgQEAgY2xhc3MgT3V0cHV0X3Nl Y3Rpb25fbG9va3VwX21hcHMKICAgfQogCiAgcHJpdmF0ZToKLSAgdHlwZWRl ZiBVbm9yZGVyZWRfbWFwPENvbnN0X3NlY3Rpb25faWQsIE91dHB1dF9tZXJn ZV9iYXNlKiwKLQkJCUNvbnN0X3NlY3Rpb25faWRfaGFzaD4KLSAgICBNZXJn ZV9zZWN0aW9uc19ieV9pZDsKLQogICB0eXBlZGVmIFVub3JkZXJlZF9tYXA8 TWVyZ2Vfc2VjdGlvbl9wcm9wZXJ0aWVzLCBPdXRwdXRfbWVyZ2VfYmFzZSos CiAJCQlNZXJnZV9zZWN0aW9uX3Byb3BlcnRpZXM6Omhhc2gsCiAJCQlNZXJn ZV9zZWN0aW9uX3Byb3BlcnRpZXM6OmVxdWFsX3RvPgpAQCAtMjk2OSw4ICsy OTQwLDYgQEAgY2xhc3MgT3V0cHV0X3NlY3Rpb25fbG9va3VwX21hcHMKICAg Ym9vbCBpc192YWxpZF87CiAgIC8vIE1lcmdlIHNlY3Rpb25zIGJ5IG1lcmdl IHNlY3Rpb24gcHJvcGVydGllcy4KICAgTWVyZ2Vfc2VjdGlvbnNfYnlfcHJv cGVydGllcyBtZXJnZV9zZWN0aW9uc19ieV9wcm9wZXJ0aWVzXzsKLSAgLy8g TWVyZ2Ugc2VjdGlvbnMgYnkgc2VjdGlvbiBJRHMuCi0gIE1lcmdlX3NlY3Rp b25zX2J5X2lkIG1lcmdlX3NlY3Rpb25zX2J5X2lkXzsKICAgLy8gUmVsYXhl ZCBzZWN0aW9ucyBieSBzZWN0aW9uIElEcy4KICAgUmVsYXhlZF9pbnB1dF9z ZWN0aW9uc19ieV9pZCByZWxheGVkX2lucHV0X3NlY3Rpb25zX2J5X2lkXzsK IH07CkBAIC0zNzYxLDExICszNzMwLDYgQEAgY2xhc3MgT3V0cHV0X3NlY3Rp b24gOiBwdWJsaWMgT3V0cHV0X2RhdGEKIAkJICBzZWN0aW9uX29mZnNldF90 eXBlIG9mZnNldCwKIAkJICBzZWN0aW9uX29mZnNldF90eXBlKiBwb3V0cHV0 KSBjb25zdDsKIAotICAgIC8vIFJldHVybiB3aGV0aGVyIHRoaXMgaXMgdGhl IG1lcmdlIHNlY3Rpb24gZm9yIHRoZSBpbnB1dCBzZWN0aW9uCi0gICAgLy8g U0hORFggaW4gT0JKRUNULgotICAgIGJvb2wKLSAgICBpc19tZXJnZV9zZWN0 aW9uX2Zvcihjb25zdCBSZWxvYmoqIG9iamVjdCwgdW5zaWduZWQgaW50IHNo bmR4KSBjb25zdDsKLQogICAgIC8vIFdyaXRlIG91dCB0aGUgZGF0YS4gIFRo aXMgZG9lcyBub3RoaW5nIGZvciBhbiBpbnB1dCBzZWN0aW9uLgogICAgIHZv aWQKICAgICB3cml0ZShPdXRwdXRfZmlsZSopOwpAQCAtNDI5MCw3ICs0MjU0 LDcgQEAgY2xhc3MgT3V0cHV0X3NlY3Rpb24gOiBwdWJsaWMgT3V0cHV0X2Rh dGEKIAogICAvLyBGaW5kIHRoZSBtZXJnZSBzZWN0aW9uIGludG8gd2hpY2gg YW4gaW5wdXQgc2VjdGlvbiB3aXRoIGluZGV4IFNITkRYIGluCiAgIC8vIE9C SkVDVCBoYXMgYmVlbiBhZGRlZC4gIFJldHVybiBOVUxMIGlmIG5vbmUgZm91 bmQuCi0gIE91dHB1dF9zZWN0aW9uX2RhdGEqCisgIGNvbnN0IE91dHB1dF9z ZWN0aW9uX2RhdGEqCiAgIGZpbmRfbWVyZ2Vfc2VjdGlvbihjb25zdCBSZWxv YmoqIG9iamVjdCwgdW5zaWduZWQgaW50IHNobmR4KSBjb25zdDsKIAogICAv LyBCdWlsZCBhIHJlbGF4YXRpb24gbWFwLgo= --089e01227e90a4c3f80510dd258f--