From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by sourceware.org (Postfix) with ESMTPS id E4EE63858D28 for ; Tue, 22 Aug 2023 17:34:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E4EE63858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id ABD7B1F85D; Tue, 22 Aug 2023 17:34:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1692725647; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dokzP0a4xLJ4+2RK/Jq8BaFvIW2gLfFcov5Qf83V5WM=; b=JBt4yaV7MUfWU+/X9za47uKSfvza5EcReEFdt5/9oJSLv5G93hdDhSJ9OufJnNliHTjSYA Oa+5xjU2245jrbbJIG3l4o+hdJCKTbVidJkfvDMbFfzd9qH2Ve/pLc3MYQropuPgPPaoJw X1VpyO0uXN4xL5nEhhMdkJJsICg7ilk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1692725647; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=dokzP0a4xLJ4+2RK/Jq8BaFvIW2gLfFcov5Qf83V5WM=; b=VJPgpTd1o1yAwTSL2HaTzAxtpdSMAZOagw7t+D9bTmJD7q1nWMucgqn2qkbLByGONb6RCF 3/L3CMNaWI0xrOCg== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 89684132B9; Tue, 22 Aug 2023 17:34:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id VjeWH4/x5GSmeAAAMHmgww (envelope-from ); Tue, 22 Aug 2023 17:34:07 +0000 Content-Type: multipart/mixed; boundary="------------5kjbTWONh4lkjTTP6FXBP3fZ" Message-ID: <947d8961-598d-5680-185c-f583d69124c8@suse.de> Date: Tue, 22 Aug 2023 19:34:17 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] [gdb/build] Return const reference in thread_info_to_thread_handle Content-Language: en-US To: Pedro Alves , gdb-patches@sourceware.org References: <20230821105356.869-1-tdevries@suse.de> <20230821105356.869-2-tdevries@suse.de> <4917ef2f-f50a-efc0-59a8-30e86d5ac53b@palves.net> From: Tom de Vries In-Reply-To: <4917ef2f-f50a-efc0-59a8-30e86d5ac53b@palves.net> X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------5kjbTWONh4lkjTTP6FXBP3fZ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 8/22/23 16:43, Pedro Alves wrote: > On 2023-08-21 11:53, Tom de Vries via Gdb-patches wrote: >> In remote_target::thread_info_to_thread_handle we return a copy: >> ... >> gdb::byte_vector >> remote_target::thread_info_to_thread_handle (struct thread_info *tp) >> { >> remote_thread_info *priv = get_remote_thread_info (tp); >> return priv->thread_handle; >> } >> ... >> >> Fix this by returning a const reference instead: >> ... >> const gdb::optional & >> remote_target::thread_info_to_thread_handle (struct thread_info *tp) >> ... >> >> Returning a gdb::optional allows us to return a nullptr, or std::nullopt in >> std::optional terms, something that is required by >> thread_db_target::thread_info_to_thread_handle. >> >> In gdb we use gdb::optional instead std::optional, because std::optional is >> availabe starting c++17 and we support c++11 and c++14, but gdb::nullopt is >> currently not available, though a submission is available [1]. >> >> So we use a kludge gdb_optional_byte_vector_nullopt. >> > > IMHO making the function return gdb::array_view > would be even better. Then the byte_vector is completely an implementation > detail, and, you wouldn't need to wrap with optional, as you could just > return an empty array_view, like currently we return an empty byte_vector. > Hi Pedro, thanks for the review. I've given the gdb::array_view a try, and that works fine, and greatly simplifies the patch, so thanks for that suggestion. The first patch is no longer necessary, but we could consider committing it nevertheless, since the work is done and may be needed in the future. Thanks, - Tom --------------5kjbTWONh4lkjTTP6FXBP3fZ Content-Type: text/x-patch; charset=UTF-8; name="0001-gdb-build-Return-gdb-array_view-in-thread_info_to_th.patch" Content-Disposition: attachment; filename*0="0001-gdb-build-Return-gdb-array_view-in-thread_info_to_th.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1ZWZlZjA4MDIzZGI3ZjVjZjYzYTAyOGRkZjA5MWRiNTkxMjcyZGYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+ CkRhdGU6IFR1ZSwgMjIgQXVnIDIwMjMgMTc6MTU6NDggKzAyMDAKU3ViamVjdDogW1BBVENI XSBbZ2RiL2J1aWxkXSBSZXR1cm4gZ2RiOjphcnJheV92aWV3IGluCiB0aHJlYWRfaW5mb190 b190aHJlYWRfaGFuZGxlCgpJbiByZW1vdGVfdGFyZ2V0Ojp0aHJlYWRfaW5mb190b190aHJl YWRfaGFuZGxlIHdlIHJldHVybiBhIGNvcHk6Ci4uLgpnZGI6OmJ5dGVfdmVjdG9yCnJlbW90 ZV90YXJnZXQ6OnRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKHN0cnVjdCB0aHJlYWRf aW5mbyAqdHApCnsKICByZW1vdGVfdGhyZWFkX2luZm8gKnByaXYgPSBnZXRfcmVtb3RlX3Ro cmVhZF9pbmZvICh0cCk7CiAgcmV0dXJuIHByaXYtPnRocmVhZF9oYW5kbGU7Cn0KLi4uCgpG aXggdGhpcyBieSByZXR1cm5pbmcgYSBnZGI6OmFycmF5X3ZpZXcgaW5zdGVhZDoKLi4uCmdk Yjo6YXJyYXlfdmlldzxjb25zdCBnZGJfYnl0ZT4KcmVtb3RlX3RhcmdldDo6dGhyZWFkX2lu Zm9fdG9fdGhyZWFkX2hhbmRsZSAoc3RydWN0IHRocmVhZF9pbmZvICp0cCkKLi4uCgpUZXN0 ZWQgb24geDg2XzY0LWxpbnV4LgoKVGhpcyBmaXhlcyB0aGUgYnVpbGQgd2hlbiBidWlsZGlu ZyB3aXRoIC1zdGQ9YysrMjAuCi0tLQogZ2RiL2xpbnV4LXRocmVhZC1kYi5jICAgICB8IDEz ICsrKysrKystLS0tLS0KIGdkYi9weXRob24vcHktaW5mdGhyZWFkLmMgfCAgNCArKy0tCiBn ZGIvcmVtb3RlLmMgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiBnZGIvdGFyZ2V0LWRlYnVn LmggICAgICAgIHwgMTQgKysrKysrKysrKysrKysKIGdkYi90YXJnZXQtZGVsZWdhdGVzLmMg ICAgfCAxNiArKysrKysrKy0tLS0tLS0tCiBnZGIvdGFyZ2V0LmMgICAgICAgICAgICAgIHwg IDIgKy0KIGdkYi90YXJnZXQuaCAgICAgICAgICAgICAgfCAxMCArKysrKysrLS0tCiA3IGZp bGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2dkYi9saW51eC10aHJlYWQtZGIuYyBiL2dkYi9saW51eC10aHJlYWQtZGIuYwpp bmRleCA3ZDlmZDU3ZGEwYy4uMTZjMjUwYzEwNGQgMTAwNjQ0Ci0tLSBhL2dkYi9saW51eC10 aHJlYWQtZGIuYworKysgYi9nZGIvbGludXgtdGhyZWFkLWRiLmMKQEAgLTEwNyw3ICsxMDcs NyBAQCBjbGFzcyB0aHJlYWRfZGJfdGFyZ2V0IGZpbmFsIDogcHVibGljIHRhcmdldF9vcHMK ICAgdGhyZWFkX2luZm8gKnRocmVhZF9oYW5kbGVfdG9fdGhyZWFkX2luZm8gKGNvbnN0IGdk Yl9ieXRlICp0aHJlYWRfaGFuZGxlLAogCQkJCQkgICAgIGludCBoYW5kbGVfbGVuLAogCQkJ CQkgICAgIGluZmVyaW9yICppbmYpIG92ZXJyaWRlOwotICBnZGI6OmJ5dGVfdmVjdG9yIHRo cmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBvdmVy cmlkZTsKKyAgZ2RiOjphcnJheV92aWV3PGNvbnN0IGdkYl9ieXRlPiB0aHJlYWRfaW5mb190 b190aHJlYWRfaGFuZGxlIChzdHJ1Y3QgdGhyZWFkX2luZm8gKikgb3ZlcnJpZGU7CiB9Owog CiBzdGF0aWMgc3RkOjpzdHJpbmcgbGlidGhyZWFkX2RiX3NlYXJjaF9wYXRoID0gTElCVEhS RUFEX0RCX1NFQVJDSF9QQVRIOwpAQCAtMzEyLDYgKzMxMiw3IEBAIHN0cnVjdCB0aHJlYWRf ZGJfdGhyZWFkX2luZm8gOiBwdWJsaWMgcHJpdmF0ZV90aHJlYWRfaW5mbwogICAvKiBDYWNo ZWQgdGhyZWFkIHN0YXRlLiAgKi8KICAgdGRfdGhyaGFuZGxlX3QgdGgge307CiAgIHRocmVh ZF90IHRpZCB7fTsKKyAgZ2RiOjpvcHRpb25hbDxnZGI6OmJ5dGVfdmVjdG9yPiB0aHJlYWRf aGFuZGxlOwogfTsKIAogc3RhdGljIHRocmVhZF9kYl90aHJlYWRfaW5mbyAqCkBAIC0xNzI0 LDIwICsxNzI1LDIwIEBAIHRocmVhZF9kYl90YXJnZXQ6OnRocmVhZF9oYW5kbGVfdG9fdGhy ZWFkX2luZm8gKGNvbnN0IGdkYl9ieXRlICp0aHJlYWRfaGFuZGxlLAogCiAvKiBSZXR1cm4g dGhlIHRocmVhZCBoYW5kbGUgYXNzb2NpYXRlZCB0aGUgdGhyZWFkX2luZm8gcG9pbnRlciBU UC4gICovCiAKLWdkYjo6Ynl0ZV92ZWN0b3IKK2dkYjo6YXJyYXlfdmlldzxjb25zdCBnZGJf Ynl0ZT4KIHRocmVhZF9kYl90YXJnZXQ6OnRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUg KHN0cnVjdCB0aHJlYWRfaW5mbyAqdHApCiB7CiAgIHRocmVhZF9kYl90aHJlYWRfaW5mbyAq cHJpdiA9IGdldF90aHJlYWRfZGJfdGhyZWFkX2luZm8gKHRwKTsKIAogICBpZiAocHJpdiA9 PSBOVUxMKQotICAgIHJldHVybiBnZGI6OmJ5dGVfdmVjdG9yICgpOworICAgIHJldHVybiB7 fTsKIAogICBpbnQgaGFuZGxlX3NpemUgPSBzaXplb2YgKHByaXYtPnRpZCk7Ci0gIGdkYjo6 Ynl0ZV92ZWN0b3IgcnYgKGhhbmRsZV9zaXplKTsKKyAgcHJpdi0+dGhyZWFkX2hhbmRsZS5l bXBsYWNlIChoYW5kbGVfc2l6ZSk7CiAKLSAgbWVtY3B5IChydi5kYXRhICgpLCAmcHJpdi0+ dGlkLCBoYW5kbGVfc2l6ZSk7CisgIG1lbWNweSAocHJpdi0+dGhyZWFkX2hhbmRsZS0+ZGF0 YSAoKSwgJnByaXYtPnRpZCwgaGFuZGxlX3NpemUpOwogCi0gIHJldHVybiBydjsKKyAgcmV0 dXJuICpwcml2LT50aHJlYWRfaGFuZGxlOwogfQogCiAvKiBHZXQgdGhlIGFkZHJlc3Mgb2Yg dGhlIHRocmVhZCBsb2NhbCB2YXJpYWJsZSBpbiBsb2FkIG1vZHVsZSBMTSB3aGljaApkaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS1pbmZ0aHJlYWQuYyBiL2dkYi9weXRob24vcHktaW5m dGhyZWFkLmMKaW5kZXggMWJkMjVkMDEzMjAuLjAwZDcxNzFkZTY0IDEwMDY0NAotLS0gYS9n ZGIvcHl0aG9uL3B5LWluZnRocmVhZC5jCisrKyBiL2dkYi9weXRob24vcHktaW5mdGhyZWFk LmMKQEAgLTI5MSw4ICsyOTEsOCBAQCB0aHB5X3RocmVhZF9oYW5kbGUgKFB5T2JqZWN0ICpz ZWxmLCBQeU9iamVjdCAqYXJncykKICAgdGhyZWFkX29iamVjdCAqdGhyZWFkX29iaiA9ICh0 aHJlYWRfb2JqZWN0ICopIHNlbGY7CiAgIFRIUFlfUkVRVUlSRV9WQUxJRCAodGhyZWFkX29i aik7CiAKLSAgZ2RiOjpieXRlX3ZlY3RvciBodjsKLSAgCisgIGdkYjo6YXJyYXlfdmlldzxj b25zdCBnZGJfYnl0ZT4gaHY7CisKICAgdHJ5CiAgICAgewogICAgICAgaHYgPSB0YXJnZXRf dGhyZWFkX2luZm9fdG9fdGhyZWFkX2hhbmRsZSAodGhyZWFkX29iai0+dGhyZWFkKTsKZGlm ZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwppbmRleCA3YWJlMDg0Mzli NS4uNWFmNDBiZDcwNGMgMTAwNjQ0Ci0tLSBhL2dkYi9yZW1vdGUuYworKysgYi9nZGIvcmVt b3RlLmMKQEAgLTc4NCw4ICs3ODQsOCBAQCBjbGFzcyByZW1vdGVfdGFyZ2V0IDogcHVibGlj IHByb2Nlc3Nfc3RyYXR1bV90YXJnZXQKIAkJCQkJICAgICBpbnQgaGFuZGxlX2xlbiwKIAkJ CQkJICAgICBpbmZlcmlvciAqaW5mKSBvdmVycmlkZTsKIAotICBnZGI6OmJ5dGVfdmVjdG9y IHRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKHN0cnVjdCB0aHJlYWRfaW5mbyAqdHAp Ci0JCQkJCQkgb3ZlcnJpZGU7CisgIGdkYjo6YXJyYXlfdmlldzxjb25zdCBnZGJfYnl0ZT4g dGhyZWFkX2luZm9fdG9fdGhyZWFkX2hhbmRsZSAoc3RydWN0IHRocmVhZF9pbmZvICp0cCkK KyAgICBvdmVycmlkZTsKIAogICB2b2lkIHN0b3AgKHB0aWRfdCkgb3ZlcnJpZGU7CiAKQEAg LTE0NTUwLDcgKzE0NTUwLDcgQEAgcmVtb3RlX3RhcmdldDo6dGhyZWFkX2hhbmRsZV90b190 aHJlYWRfaW5mbyAoY29uc3QgZ2RiX2J5dGUgKnRocmVhZF9oYW5kbGUsCiAgIHJldHVybiBO VUxMOwogfQogCi1nZGI6OmJ5dGVfdmVjdG9yCitnZGI6OmFycmF5X3ZpZXc8Y29uc3QgZ2Ri X2J5dGU+CiByZW1vdGVfdGFyZ2V0Ojp0aHJlYWRfaW5mb190b190aHJlYWRfaGFuZGxlIChz dHJ1Y3QgdGhyZWFkX2luZm8gKnRwKQogewogICByZW1vdGVfdGhyZWFkX2luZm8gKnByaXYg PSBnZXRfcmVtb3RlX3RocmVhZF9pbmZvICh0cCk7CmRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0 LWRlYnVnLmggYi9nZGIvdGFyZ2V0LWRlYnVnLmgKaW5kZXggYWNiMDFkNDdlN2MuLjMxYzI1 ZTlhZWZkIDEwMDY0NAotLS0gYS9nZGIvdGFyZ2V0LWRlYnVnLmgKKysrIGIvZ2RiL3Rhcmdl dC1kZWJ1Zy5oCkBAIC0yMzYsNCArMjM2LDE4IEBAIHRhcmdldF9kZWJ1Z19wcmludF9nZGJf Ynl0ZV92ZWN0b3JfciAoZ2RiOjpieXRlX3ZlY3RvciAmdmVjdG9yKQogewogICB0YXJnZXRf ZGVidWdfcHJpbnRfY29uc3RfZ2RiX2J5dGVfdmVjdG9yX3IgKHZlY3Rvcik7CiB9CisKK3N0 YXRpYyB2b2lkCit0YXJnZXRfZGVidWdfcHJpbnRfZ2RiX2FycmF5X3ZpZXdfY29uc3RfZ2Ri X2J5dGUgKGdkYjo6YXJyYXlfdmlldzxjb25zdCBnZGJfYnl0ZT4gJnZlY3RvcikKK3sKKyAg Z2RiX3B1dHMgKCJ7IiwgZ2RiX3N0ZGxvZyk7CisKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkg PCB2ZWN0b3Iuc2l6ZSAoKTsgaSsrKQorICAgIHsKKyAgICAgIGdkYl9wcmludGYgKGdkYl9z dGRsb2csICIgJXMiLAorCQkgIHBoZXhfbnogKHZlY3RvcltpXSwgMSkpOworICAgIH0KKyAg Z2RiX3B1dHMgKCIgfSIsIGdkYl9zdGRsb2cpOworfQorCiAjZW5kaWYgLyogVEFSR0VUX0RF QlVHX0ggKi8KZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMgYi9nZGIvdGFy Z2V0LWRlbGVnYXRlcy5jCmluZGV4IGU0ZTE0MzgwMTgxLi44MTI2MWIxMzIxMSAxMDA2NDQK LS0tIGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYworKysgYi9nZGIvdGFyZ2V0LWRlbGVnYXRl cy5jCkBAIC04OSw3ICs4OSw3IEBAIHN0cnVjdCBkdW1teV90YXJnZXQgOiBwdWJsaWMgdGFy Z2V0X29wcwogICBjb25zdCBjaGFyICpleHRyYV90aHJlYWRfaW5mbyAodGhyZWFkX2luZm8g KmFyZzApIG92ZXJyaWRlOwogICBjb25zdCBjaGFyICp0aHJlYWRfbmFtZSAodGhyZWFkX2lu Zm8gKmFyZzApIG92ZXJyaWRlOwogICB0aHJlYWRfaW5mbyAqdGhyZWFkX2hhbmRsZV90b190 aHJlYWRfaW5mbyAoY29uc3QgZ2RiX2J5dGUgKmFyZzAsIGludCBhcmcxLCBpbmZlcmlvciAq YXJnMikgb3ZlcnJpZGU7Ci0gIGdkYjo6Ynl0ZV92ZWN0b3IgdGhyZWFkX2luZm9fdG9fdGhy ZWFkX2hhbmRsZSAoc3RydWN0IHRocmVhZF9pbmZvICphcmcwKSBvdmVycmlkZTsKKyAgZ2Ri OjphcnJheV92aWV3PGNvbnN0X2dkYl9ieXRlPiB0aHJlYWRfaW5mb190b190aHJlYWRfaGFu ZGxlIChzdHJ1Y3QgdGhyZWFkX2luZm8gKmFyZzApIG92ZXJyaWRlOwogICB2b2lkIHN0b3Ag KHB0aWRfdCBhcmcwKSBvdmVycmlkZTsKICAgdm9pZCBpbnRlcnJ1cHQgKCkgb3ZlcnJpZGU7 CiAgIHZvaWQgcGFzc19jdHJsYyAoKSBvdmVycmlkZTsKQEAgLTI2Myw3ICsyNjMsNyBAQCBz dHJ1Y3QgZGVidWdfdGFyZ2V0IDogcHVibGljIHRhcmdldF9vcHMKICAgY29uc3QgY2hhciAq ZXh0cmFfdGhyZWFkX2luZm8gKHRocmVhZF9pbmZvICphcmcwKSBvdmVycmlkZTsKICAgY29u c3QgY2hhciAqdGhyZWFkX25hbWUgKHRocmVhZF9pbmZvICphcmcwKSBvdmVycmlkZTsKICAg dGhyZWFkX2luZm8gKnRocmVhZF9oYW5kbGVfdG9fdGhyZWFkX2luZm8gKGNvbnN0IGdkYl9i eXRlICphcmcwLCBpbnQgYXJnMSwgaW5mZXJpb3IgKmFyZzIpIG92ZXJyaWRlOwotICBnZGI6 OmJ5dGVfdmVjdG9yIHRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKHN0cnVjdCB0aHJl YWRfaW5mbyAqYXJnMCkgb3ZlcnJpZGU7CisgIGdkYjo6YXJyYXlfdmlldzxjb25zdF9nZGJf Ynl0ZT4gdGhyZWFkX2luZm9fdG9fdGhyZWFkX2hhbmRsZSAoc3RydWN0IHRocmVhZF9pbmZv ICphcmcwKSBvdmVycmlkZTsKICAgdm9pZCBzdG9wIChwdGlkX3QgYXJnMCkgb3ZlcnJpZGU7 CiAgIHZvaWQgaW50ZXJydXB0ICgpIG92ZXJyaWRlOwogICB2b2lkIHBhc3NfY3RybGMgKCkg b3ZlcnJpZGU7CkBAIC0xODcxLDI4ICsxODcxLDI4IEBAIGRlYnVnX3RhcmdldDo6dGhyZWFk X2hhbmRsZV90b190aHJlYWRfaW5mbyAoY29uc3QgZ2RiX2J5dGUgKmFyZzAsIGludCBhcmcx LCBpbmZlCiAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWdkYjo6Ynl0ZV92ZWN0b3IKK2dkYjo6 YXJyYXlfdmlldzxjb25zdF9nZGJfYnl0ZT4KIHRhcmdldF9vcHM6OnRocmVhZF9pbmZvX3Rv X3RocmVhZF9oYW5kbGUgKHN0cnVjdCB0aHJlYWRfaW5mbyAqYXJnMCkKIHsKICAgcmV0dXJu IHRoaXMtPmJlbmVhdGggKCktPnRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKGFyZzAp OwogfQogCi1nZGI6OmJ5dGVfdmVjdG9yCitnZGI6OmFycmF5X3ZpZXc8Y29uc3RfZ2RiX2J5 dGU+CiBkdW1teV90YXJnZXQ6OnRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKHN0cnVj dCB0aHJlYWRfaW5mbyAqYXJnMCkKIHsKLSAgcmV0dXJuIGdkYjo6Ynl0ZV92ZWN0b3IgKCk7 CisgIHJldHVybiBnZGI6OmFycmF5X3ZpZXc8Y29uc3QgZ2RiX2J5dGU+ICgpOwogfQogCi1n ZGI6OmJ5dGVfdmVjdG9yCitnZGI6OmFycmF5X3ZpZXc8Y29uc3RfZ2RiX2J5dGU+CiBkZWJ1 Z190YXJnZXQ6OnRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKHN0cnVjdCB0aHJlYWRf aW5mbyAqYXJnMCkKIHsKLSAgZ2RiOjpieXRlX3ZlY3RvciByZXN1bHQ7CisgIGdkYjo6YXJy YXlfdmlldzxjb25zdF9nZGJfYnl0ZT4gcmVzdWx0OwogICBnZGJfcHJpbnRmIChnZGJfc3Rk bG9nLCAiLT4gJXMtPnRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKC4uLilcbiIsIHRo aXMtPmJlbmVhdGggKCktPnNob3J0bmFtZSAoKSk7CiAgIHJlc3VsdCA9IHRoaXMtPmJlbmVh dGggKCktPnRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUgKGFyZzApOwogICBnZGJfcHJp bnRmIChnZGJfc3RkbG9nLCAiPC0gJXMtPnRocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5kbGUg KCIsIHRoaXMtPmJlbmVhdGggKCktPnNob3J0bmFtZSAoKSk7CiAgIHRhcmdldF9kZWJ1Z19w cmludF9zdHJ1Y3RfdGhyZWFkX2luZm9fcCAoYXJnMCk7CiAgIGdkYl9wdXRzICgiKSA9ICIs IGdkYl9zdGRsb2cpOwotICB0YXJnZXRfZGVidWdfcHJpbnRfZ2RiX2J5dGVfdmVjdG9yIChy ZXN1bHQpOworICB0YXJnZXRfZGVidWdfcHJpbnRfZ2RiX2FycmF5X3ZpZXdfY29uc3RfZ2Ri X2J5dGUgKHJlc3VsdCk7CiAgIGdkYl9wdXRzICgiXG4iLCBnZGJfc3RkbG9nKTsKICAgcmV0 dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQuYyBiL2dkYi90YXJnZXQu YwppbmRleCAxNmY0M2QwNzJjZC4uOGIxZDQ4ZDkxZDkgMTAwNjQ0Ci0tLSBhL2dkYi90YXJn ZXQuYworKysgYi9nZGIvdGFyZ2V0LmMKQEAgLTI2NDAsNyArMjY0MCw3IEBAIHRhcmdldF90 aHJlYWRfaGFuZGxlX3RvX3RocmVhZF9pbmZvIChjb25zdCBnZGJfYnl0ZSAqdGhyZWFkX2hh bmRsZSwKIAogLyogU2VlIHRhcmdldC5oLiAgKi8KIAotZ2RiOjpieXRlX3ZlY3RvcgorZ2Ri OjphcnJheV92aWV3PGNvbnN0IGdkYl9ieXRlPgogdGFyZ2V0X3RocmVhZF9pbmZvX3RvX3Ro cmVhZF9oYW5kbGUgKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGlwKQogewogICB0YXJnZXRfb3Bz ICp0YXJnZXQgPSBjdXJyZW50X2luZmVyaW9yICgpLT50b3BfdGFyZ2V0ICgpOwpkaWZmIC0t Z2l0IGEvZ2RiL3RhcmdldC5oIGIvZ2RiL3RhcmdldC5oCmluZGV4IDZhZTQwMGUyY2MyLi4w Y2VhOTU1Y2JkNyAxMDA2NDQKLS0tIGEvZ2RiL3RhcmdldC5oCisrKyBiL2dkYi90YXJnZXQu aApAQCAtMzksNiArMzksMTAgQEAgc3RydWN0IGV4cHJlc3Npb247CiBzdHJ1Y3QgZGNhY2hl X3N0cnVjdDsKIHN0cnVjdCBpbmZlcmlvcjsKIAorLyogRGVmaW5lIGNvbnN0IGdkYl9ieXRl IHVzaW5nIG9uZSBpZGVudGlmaWVyLCB0byBtYWtlIGl0IGVhc3kgZm9yCisgICBtYWtlLXRh cmdldC1kZWxlZ2F0ZXMucHkgdG8gcGFyc2UuICAqLwordHlwZWRlZiBjb25zdCBnZGJfYnl0 ZSBjb25zdF9nZGJfYnl0ZTsKKwogI2luY2x1ZGUgImluZnJ1bi5oIiAvKiBGb3IgZW51bSBl eGVjX2RpcmVjdGlvbl9raW5kLiAgKi8KICNpbmNsdWRlICJicmVha3BvaW50LmgiIC8qIEZv ciBlbnVtIGJwdHlwZS4gICovCiAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9zY29wZWRfcmVzdG9y ZS5oIgpAQCAtNjc5LDggKzY4Myw4IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAJCQkJCQkgICAg ICAgaW5mZXJpb3IgKmluZikKICAgICAgIFRBUkdFVF9ERUZBVUxUX1JFVFVSTiAoTlVMTCk7 CiAgICAgLyogU2VlIHRhcmdldF90aHJlYWRfaW5mb190b190aHJlYWRfaGFuZGxlLiAgKi8K LSAgICB2aXJ0dWFsIGdkYjo6Ynl0ZV92ZWN0b3IgdGhyZWFkX2luZm9fdG9fdGhyZWFkX2hh bmRsZSAoc3RydWN0IHRocmVhZF9pbmZvICopCi0gICAgICBUQVJHRVRfREVGQVVMVF9SRVRV Uk4gKGdkYjo6Ynl0ZV92ZWN0b3IgKCkpOworICAgIHZpcnR1YWwgZ2RiOjphcnJheV92aWV3 PGNvbnN0X2dkYl9ieXRlPiB0aHJlYWRfaW5mb190b190aHJlYWRfaGFuZGxlIChzdHJ1Y3Qg dGhyZWFkX2luZm8gKikKKyAgICAgIFRBUkdFVF9ERUZBVUxUX1JFVFVSTiAoZ2RiOjphcnJh eV92aWV3PGNvbnN0IGdkYl9ieXRlPiAoKSk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AgKHB0 aWRfdCkKICAgICAgIFRBUkdFVF9ERUZBVUxUX0lHTk9SRSAoKTsKICAgICB2aXJ0dWFsIHZv aWQgaW50ZXJydXB0ICgpCkBAIC0xOTI0LDcgKzE5MjgsNyBAQCBleHRlcm4gc3RydWN0IHRo cmVhZF9pbmZvICp0YXJnZXRfdGhyZWFkX2hhbmRsZV90b190aHJlYWRfaW5mbwogLyogR2l2 ZW4gYSB0aHJlYWQsIHJldHVybiB0aGUgdGhyZWFkIGhhbmRsZSwgYSB0YXJnZXQtc3BlY2lm aWMgc2VxdWVuY2Ugb2YKICAgIGJ5dGVzIHdoaWNoIHNlcnZlcyBhcyBhIHRocmVhZCBpZGVu dGlmaWVyIHdpdGhpbiB0aGUgcHJvZ3JhbSBiZWluZwogICAgZGVidWdnZWQuICAqLwotZXh0 ZXJuIGdkYjo6Ynl0ZV92ZWN0b3IgdGFyZ2V0X3RocmVhZF9pbmZvX3RvX3RocmVhZF9oYW5k bGUKK2V4dGVybiBnZGI6OmFycmF5X3ZpZXc8Y29uc3QgZ2RiX2J5dGU+IHRhcmdldF90aHJl YWRfaW5mb190b190aHJlYWRfaGFuZGxlCiAgIChzdHJ1Y3QgdGhyZWFkX2luZm8gKik7CiAK IC8qIEF0dGVtcHRzIHRvIGZpbmQgdGhlIHBhdGhuYW1lIG9mIHRoZSBleGVjdXRhYmxlIGZp bGUKCmJhc2UtY29tbWl0OiBhNDgyMjc4OGQ3YzQxOTI2OTQxYjFjNmM0MDVjODJhZWZmYjcy YWQ3Ci0tIAoyLjM1LjMKCg== --------------5kjbTWONh4lkjTTP6FXBP3fZ--