From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Keith David Bershatsky Newsgroups: gmane.emacs.devel Subject: Re: Universal functions to manage multiple window caches. Date: Sat, 20 Apr 2019 13:29:56 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Sat_Apr_20_13:29:56_2019-1" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="176546"; mail-complaints-to="usenet@blaine.gmane.org" Cc: emacs-devel@gnu.org To: Alex Gramiak Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 20 22:30:50 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hHwdL-000jhB-Lc for ged-emacs-devel@m.gmane.org; Sat, 20 Apr 2019 22:30:48 +0200 Original-Received: from localhost ([127.0.0.1]:45096 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hHwdK-00052H-Mg for ged-emacs-devel@m.gmane.org; Sat, 20 Apr 2019 16:30:46 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:40023) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hHwcc-00051x-FR for emacs-devel@gnu.org; Sat, 20 Apr 2019 16:30:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hHwca-0002ui-EY for emacs-devel@gnu.org; Sat, 20 Apr 2019 16:30:02 -0400 Original-Received: from gateway36.websitewelcome.com ([192.185.200.11]:46249) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hHwcY-0002t6-Ll for emacs-devel@gnu.org; Sat, 20 Apr 2019 16:29:59 -0400 Original-Received: from cm11.websitewelcome.com (cm11.websitewelcome.com [100.42.49.5]) by gateway36.websitewelcome.com (Postfix) with ESMTP id 7A0B94010C455 for ; Sat, 20 Apr 2019 14:48:06 -0500 (CDT) Original-Received: from gator3053.hostgator.com ([50.87.144.69]) by cmsmtp with SMTP id HwcXhnEh7dnCeHwcXhZN2N; Sat, 20 Apr 2019 15:29:57 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com ; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date: Sender:Reply-To:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=/Zf73PTeYpOdn4VkjEXGPvuYT5kV+Cc+CnGRC/mMRKU=; b=D/psLpFKmmwYnl5Ldo8yGGdZD7 r/2Vj2tqIe3yT8e7v2Y+b6s8fI+90FxhfY/9Ci3MqQEFUSEBi7eUfPopMAe1zAHHIFwTghsbRrGoe UU0kUEuztuXPXdmJ97aDzJd+7uSq/nait/Y4PfPA65ncQSuyShNoiZ/BihiH3tQWhUrTCTOaNhsMZ BBa6+HuonZLfdlHDKEeq6aF6NXBribg/9sNTN+eY45EWXgBtPmAbKalU6kPNNOsYNhcbseAIQ7h1O wIhOdFSNZOOoSZmiPIZTUuPaajm0bLquqee6qyphawUwAUJ+tHJkSlGnXFWErRU7IKjNfQ4HG/0Xk eg6SHhmw==; Original-Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:51657 helo=server.local) by gator3053.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.91) (envelope-from ) id 1hHwcW-000Rm4-MS; Sat, 20 Apr 2019 15:29:56 -0500 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3053.hostgator.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-BWhitelist: no X-Source-IP: 45.48.239.195 X-Source-L: No X-Exim-ID: 1hHwcW-000Rm4-MS X-Source-Sender: cpe-45-48-239-195.socal.res.rr.com (server.local) [45.48.239.195]:51657 X-Source-Auth: lawlist X-Email-Count: 1 X-Source-Cap: bGF3bGlzdDtsYXdsaXN0O2dhdG9yMzA1My5ob3N0Z2F0b3IuY29t X-Local-Domain: yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 192.185.200.11 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:235717 Archived-At: --Multipart_Sat_Apr_20_13:29:56_2019-1 Content-Type: text/plain; charset=US-ASCII Thank you, Alex, for the suggested edits. I moved the enum for cache types into the main struct for multiple_cursor_cache, and also moved the sections that apply to w->mc_elts into the MC_CACHE case instead of the CH_CACHE case. Attached is the updated diff for the new cache management design. struct multiple_cursor_cache { ptrdiff_t allocated; ptrdiff_t used; struct items { int x; int fx; int y; int fy; int hpos; int vpos; int wd; int h; int cursor_type; int cursor_width; struct RGB { double red; double green; double blue; } foreground, background; bool active_p; int glyph_flavor; bool enabled_p; } *caches; enum type_of_cache { NO_CACHE, MC_CACHE, CH_CACHE, FC_CACHE } cache_type; }; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > Date: [04-20-2019 10:17:01] <20 Apr 2019 11:17:01 -0600> > From: Alex Gramiak > To: Keith David Bershatsky > Cc: emacs-devel@gnu.org > Subject: Re: Universal functions to manage multiple window caches. > >* * * > > Looks about what I expected, yeah (you could also have the enum be an > element of each cache type instead of it being global, but it's up to > preference). Though is it your intention to be using w->mc_elts in the > CH_CACHE case instead of w->ch_elts? --Multipart_Sat_Apr_20_13:29:56_2019-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="cache_rewrite_003.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9idWZmZXIuYyBiL3NyYy9idWZmZXIuYwppbmRleCBhYjQ3NzQ4Li4w MzY0ZWJhIDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmMKKysrIGIvc3JjL2J1ZmZlci5jCkBAIC0x MzMsNiArMTMzLDIxIEBAIENIRUNLX09WRVJMQVkgKExpc3BfT2JqZWN0IHgpCiAKIC8qIFRoZXNl IHNldHRlcnMgYXJlIHVzZWQgb25seSBpbiB0aGlzIGZpbGUsIHNvIHRoZXkgY2FuIGJlIHByaXZh dGUuCiAgICBUaGUgcHVibGljIHNldHRlcnMgYXJlIGlubGluZSBmdW5jdGlvbnMgZGVmaW5lZCBp biBidWZmZXIuaC4gICovCisKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisvKiBiZWdpbiBN VUxUSVBMRS1DVVJTT1JTICovCisKK3N0YXRpYyB2b2lkCitic2V0X2Nyb3NzaGFpcnMgKHN0cnVj dCBidWZmZXIgKmIsIExpc3BfT2JqZWN0IHZhbCkKK3sKKyAgYi0+Y3Jvc3NoYWlyc18gPSB2YWw7 Cit9CisKKy8qIGVuZCBNVUxUSVBMRS1DVVJTT1JTICovCisvKiAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiog Ki8KKworCiBzdGF0aWMgdm9pZAogYnNldF9hYmJyZXZfbW9kZSAoc3RydWN0IGJ1ZmZlciAqYiwg TGlzcF9PYmplY3QgdmFsKQogewpAQCAtNTE0Miw2ICs1MTU3LDE2IEBAIGluaXRfYnVmZmVyX29u Y2UgKHZvaWQpCiAgIGJzZXRfbGFzdF9zZWxlY3RlZF93aW5kb3cgKCZidWZmZXJfbG9jYWxfZmxh Z3MsIG1ha2VfZml4bnVtICgwKSk7CiAKICAgaWR4ID0gMTsKKworCisvKiAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiogKi8KKy8qIE1VTFRJUExFLUNVUlNPUlMgKi8KKworICBYU0VURkFTVElOVCAoQlZBUiAo JmJ1ZmZlcl9sb2NhbF9mbGFncywgY3Jvc3NoYWlycyksIGlkeCk7ICsraWR4OworCisvKiAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiogKi8KKworCiAgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2xvY2Fs X2ZsYWdzLCBtb2RlX2xpbmVfZm9ybWF0KSwgaWR4KTsgKytpZHg7CiAgIFhTRVRGQVNUSU5UIChC VkFSICgmYnVmZmVyX2xvY2FsX2ZsYWdzLCBhYmJyZXZfbW9kZSksIGlkeCk7ICsraWR4OwogICBY U0VURkFTVElOVCAoQlZBUiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgb3ZlcndyaXRlX21vZGUpLCBp ZHgpOyArK2lkeDsKQEAgLTUyMjgsNiArNTI1MywxNiBAQCBpbml0X2J1ZmZlcl9vbmNlICh2b2lk KQogICAvKiBNdXN0IGRvIHRoZXNlIGJlZm9yZSBtYWtpbmcgdGhlIGZpcnN0IGJ1ZmZlciEgKi8K IAogICAvKiByZWFsIHNldHVwIGlzIGRvbmUgaW4gYmluZGluZ3MuZWwgKi8KKworCisvKiAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiogKi8KKy8qIE1VTFRJUExFLUNVUlNPUlMgKi8KKworICBic2V0X2Nyb3Nz aGFpcnMgKCZidWZmZXJfZGVmYXVsdHMsIFFuaWwpOworCisvKiAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiog Ki8KKworCiAgIGJzZXRfbW9kZV9saW5lX2Zvcm1hdCAoJmJ1ZmZlcl9kZWZhdWx0cywgYnVpbGRf cHVyZV9jX3N0cmluZyAoIiUtIikpOwogICBic2V0X2hlYWRlcl9saW5lX2Zvcm1hdCAoJmJ1ZmZl cl9kZWZhdWx0cywgUW5pbCk7CiAgIGJzZXRfYWJicmV2X21vZGUgKCZidWZmZXJfZGVmYXVsdHMs IFFuaWwpOwpAQCAtNTQ2NCw2ICs1NDk5LDE1IEBAIHN5bXNfb2ZfYnVmZmVyICh2b2lkKQogICBz dGF0aWNwcm8gKCZRU0Z1bmRhbWVudGFsKTsKICAgc3RhdGljcHJvICgmVmJ1ZmZlcl9hbGlzdCk7 CiAKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisvKiBNVUxUSVBMRS1DVVJTT1JTICovCisK KyAgREVGU1lNIChRY3Jvc3NoYWlycywgImNyb3NzaGFpcnMiKTsKKworLyogKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqICovCisKKwogICBERUZTWU0gKFFjaG9pY2UsICJjaG9pY2UiKTsKICAgREVGU1lNIChR bGVmdCwgImxlZnQiKTsKICAgREVGU1lNIChRcmlnaHQsICJyaWdodCIpOwpAQCAtNTUwMSw2ICs1 NTQ1LDE2IEBAIHN5bXNfb2ZfYnVmZmVyICh2b2lkKQogICBGcHV0IChRcHJvdGVjdGVkX2ZpZWxk LCBRZXJyb3JfbWVzc2FnZSwKIAlidWlsZF9wdXJlX2Nfc3RyaW5nICgiQXR0ZW1wdCB0byBtb2Rp ZnkgYSBwcm90ZWN0ZWQgZmllbGQiKSk7CiAKKworLyogKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisv KiBNVUxUSVBMRS1DVVJTT1JTICovCisKKyAgREVGVkFSX1BFUl9CVUZGRVIgKCJjcm9zc2hhaXJz IiwgJkJWQVIgKGN1cnJlbnRfYnVmZmVyLCBjcm9zc2hhaXJzKSwgUW5pbCwKKyAgICBkb2M6IC8q IEEgYnVmZXItbG9jYWwgdmFyaWFibGUgdG8gYWN0aXZhdGUvZGVhY3RpdmF0ZSBjcm9zc2hhaXJz LiAqLyk7CisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCisKICAgREVGVkFSX1BFUl9CVUZG RVIgKCJoZWFkZXItbGluZS1mb3JtYXQiLAogCQkgICAgICZCVkFSIChjdXJyZW50X2J1ZmZlciwg aGVhZGVyX2xpbmVfZm9ybWF0KSwKIAkJICAgICBRbmlsLApkaWZmIC0tZ2l0IGEvc3JjL2J1ZmZl ci5oIGIvc3JjL2J1ZmZlci5oCmluZGV4IGY0MmMzZTkuLjIzM2RiY2EgMTAwNjQ0Ci0tLSBhL3Ny Yy9idWZmZXIuaAorKysgYi9zcmMvYnVmZmVyLmgKQEAgLTYzNiw2ICs2MzYsMTYgQEAgc3RydWN0 IGJ1ZmZlcgogICAgICBjYWNoZSBhcmUgZW5hYmxlZC4gIFNlZSBzZWFyY2guYywgaW5kZW50LmMg YW5kIGJpZGkuYyBmb3IgZGV0YWlscy4gICovCiAgIExpc3BfT2JqZWN0IGNhY2hlX2xvbmdfc2Nh bnNfOwogCisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworLyogTVVMVElQTEUtQ1VSU09SUyAq LworCisgIC8qIFRoZSBuYW1lIG9mIHRoZSBidWZmZXItbG9jYWwgdmFyaWFibGUuICovCisgIExp c3BfT2JqZWN0IGNyb3NzaGFpcnNfOworCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKworCiAg IC8qIElmIHRoZSB3aWR0aCBydW4gY2FjaGUgaXMgZW5hYmxlZCwgdGhpcyB0YWJsZSBjb250YWlu cyB0aGUKICAgICAgY2hhcmFjdGVyIHdpZHRocyB3aWR0aF9ydW5fY2FjaGUgKHNlZSBhYm92ZSkg YXNzdW1lcy4gIFdoZW4gd2UKICAgICAgZG8gYSB0aG9yb3VnaCByZWRpc3BsYXksIHdlIGNvbXBh cmUgdGhpcyBhZ2FpbnN0IHRoZSBidWZmZXIncwpkaWZmIC0tZ2l0IGEvc3JjL2Rpc3BuZXcuYyBi L3NyYy9kaXNwbmV3LmMKaW5kZXggY2NiMDhlYy4uNjAxMTkzOSAxMDA2NDQKLS0tIGEvc3JjL2Rp c3BuZXcuYworKysgYi9zcmMvZGlzcG5ldy5jCkBAIC0zMzgwLDYgKzMzODAsMTAxIEBAIGNoZWNr X2N1cnJlbnRfbWF0cml4X2ZsYWdzIChzdHJ1Y3Qgd2luZG93ICp3KQogCiAjZW5kaWYgLyogR0xZ UEhfREVCVUcgKi8KIAorc3RhdGljIHZvaWQKK21jX3Jlc2V0X2NhY2hlIChzdHJ1Y3Qgd2luZG93 ICp3LCBlbnVtIHR5cGVfb2ZfY2FjaGUgY2FjaGVfdHlwZSkKK3sKKyAgc3dpdGNoIChjYWNoZV90 eXBlKQorICAgIHsKKyAgICAgIGNhc2UgTk9fQ0FDSEU6CisgICAgICAgIHsKKyAgICAgICAgICBy ZXR1cm47CisgICAgICAgIH0KKyAgICAgIGNhc2UgTUNfQ0FDSEU6CisgICAgICAgIHsKKyAgICAg ICAgICAvKiBGSVhNRTogIE1ha2UgYSBkZWNpc2lvbiByZWdhcmRpbmcgd2hhdCB0byBkbyB3aGVu IGNyb3NzaGFpcnMgaXMKKyAgICAgICAgICBkaXNhYmxlZDsgaS5lLiwgZGVjcmVhc2UgdGhlIHNp emUgb2YgdGhlIGFycmF5OyBvciwgc2V0IHZhbHVlcyBvZiBhbGwKKyAgICAgICAgICBzdHJ1Y3Qg ZWxlbWVudHMgdG8gemVyby4gKi8KKyAgICAgICAgICBpZiAoQlVGRkVSUCAody0+Y29udGVudHMp ICYmIE5JTFAgKEJWQVIgKFhCVUZGRVIgKHctPmNvbnRlbnRzKSwgY3Jvc3NoYWlycykpCisgICAg ICAgICAgICAgICYmIHctPm1jX2VsdHMudXNlZCA+IDEpCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgIC8qIERlY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBhcnJheSB0byBhIGJhcmUgbWluaW11 bS4gKi8KKyAgICAgICAgICAgICAgeG5yZWFsbG9jICh3LT5tY19lbHRzLmNhY2hlcywgMSwgc2l6 ZW9mICp3LT5tY19lbHRzLmNhY2hlcyk7CisgICAgICAgICAgICAgIHctPm1jX2VsdHMudXNlZCA9 IDA7CisgICAgICAgICAgICAgIHctPm1jX2VsdHMuYWxsb2NhdGVkID0gMTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAvLyAgaWYgKEJVRkZFUlAgKHctPmNvbnRlbnRzKSAmJiBOSUxQIChCVkFS IChYQlVGRkVSICh3LT5jb250ZW50cyksIGNyb3NzaGFpcnMpKSkKKyAgICAgICAgICAvLyAgICB7 CisgICAgICAgICAgLy8gICAgICAvKiBTZXQgYWxsIF91c2VkXyBlbGVtZW50cyBvZiB0aGUgYXJy YXkgdG8gemVyby4KKyAgICAgICAgICAvLyAgICAgIGVsdHNfYWxsb2NhdGVkIHJlbWFpbiB0aGUg c2FtZS4gKi8KKyAgICAgICAgICAvLyAgICAgIG1lbXNldCAody0+bWNfZWx0cy5jYWNoZXMsIDAs IHctPm1jX2VsdHMudXNlZCAqIChzaXplb2YgKnctPm1jX2VsdHMuY2FjaGVzKSk7CisgICAgICAg ICAgLy8gICAgICB3LT5tY19lbHRzLnVzZWQgPSAwOworICAgICAgICAgIC8vICAgIH0KKyAgICAg ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgY2FzZSBDSF9DQUNIRToKKyAgICAgICAgewor ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICBjYXNlIEZDX0NBQ0hFOgorICAgICAg ICB7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lk CittY19wb3B1bGF0ZV9jYWNoZSAoc3RydWN0IHdpbmRvdyAqdywgZW51bSB0eXBlX29mX2NhY2hl IGNhY2hlX3R5cGUpCit7CisgIHN3aXRjaCAoY2FjaGVfdHlwZSkKKyAgICB7CisgICAgICBjYXNl IE5PX0NBQ0hFOgorICAgICAgICB7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg ICBjYXNlIE1DX0NBQ0hFOgorICAgICAgICB7CisgICAgICAgICAgaWYgKEJVRkZFUlAgKHctPmNv bnRlbnRzKQorICAgICAgICAgICAgICAmJiAhTklMUCAoQlZBUiAoWEJVRkZFUiAody0+Y29udGVu dHMpLCBjcm9zc2hhaXJzKSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGludCBtYXhf ZWx0cyA9IDI1MDAwOworICAgICAgICAgICAgICAvKiBFeGFtcGxlIGFzc3VtZXMgdGhlcmUgaXMg b25lICgxKSBuZXcgZWx0IGVhY2ggd2luZG93IHVwZGF0ZS4gKi8KKyAgICAgICAgICAgICAgKyt3 LT5tY19lbHRzLnVzZWQ7CisgICAgICAgICAgICAgIC8qIE1heWJlIGluY3JlYXNlIHRoZSBzaXpl IG9mIHRoZSBhcnJheS4gKi8KKyAgICAgICAgICAgICAgaWYgKHctPm1jX2VsdHMuYWxsb2NhdGVk IDwgdy0+bWNfZWx0cy51c2VkCisgICAgICAgICAgICAgICAgICAmJiB3LT5tY19lbHRzLnVzZWQg PCBtYXhfZWx0cykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBpbnQgb2xk X2FsbG9jID0gdy0+bWNfZWx0cy5hbGxvY2F0ZWQ7CisgICAgICAgICAgICAgICAgICBpbnQgbmV3 X2VsdHMgPSB3LT5tY19lbHRzLnVzZWQgLSB3LT5tY19lbHRzLmFsbG9jYXRlZDsKKyAgICAgICAg ICAgICAgICAgIHctPm1jX2VsdHMuY2FjaGVzID0geHBhbGxvYyAody0+bWNfZWx0cy5jYWNoZXMs ICZ3LT5tY19lbHRzLmFsbG9jYXRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5ld19lbHRzLCBJTlRfTUFYLCBzaXplb2YgKnctPm1jX2VsdHMuY2Fj aGVzKTsKKyAgICAgICAgICAgICAgICAgIG1lbXNldCAody0+bWNfZWx0cy5jYWNoZXMgKyBvbGRf YWxsb2MsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAody0+bWNfZWx0cy5hbGxvY2F0 ZWQgLSBvbGRfYWxsb2MpICogc2l6ZW9mICp3LT5tY19lbHRzLmNhY2hlcyk7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICBpbnQgbnRoID0gdy0+bWNfZWx0cy51c2VkIC0gMTsKKyAg ICAgICAgICAgICAgZm9yIChpbnQgZWx0ID0gMDsgZWx0IDwgdy0+bWNfZWx0cy51c2VkOyArK2Vs dCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICBpZiAoZWx0ID09IG50aCkK KyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIHctPm1jX2VsdHMu Y2FjaGVzW250aF0ueCA9IGVsdDsKKyAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgcmVkID0g ZWx0OyAKKyAgICAgICAgICAgICAgICAgICAgICB3LT5tY19lbHRzLmNhY2hlc1tlbHRdLmZvcmVn cm91bmQucmVkID0gcmVkOworICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwg InctPm1jX2VsdHMudXNlZCAoJWQpIHwgdy0+bWNfZWx0cy5hbGxvY2F0ZWQgKCVkKVxuIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LT5tY19lbHRzLnVzZWQsIHct Pm1jX2VsdHMuYWxsb2NhdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg Y2FzZSBDSF9DQUNIRToKKyAgICAgICAgeworICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg ICAgICBjYXNlIEZDX0NBQ0hFOgorICAgICAgICB7CisgICAgICAgICAgYnJlYWs7CisgICAgICAg IH0KKyAgICB9Cit9CiAKIC8qIFVwZGF0ZSBkaXNwbGF5IG9mIHdpbmRvdyBXLgogICAgSWYgRk9S Q0VfUCwgZG9uJ3Qgc3RvcCB1cGRhdGluZyB3aGVuIGlucHV0IGlzIHBlbmRpbmcuICAqLwpAQCAt MzM4OCw2ICszNDgzLDIxIEBAIHN0YXRpYyBib29sCiB1cGRhdGVfd2luZG93IChzdHJ1Y3Qgd2lu ZG93ICp3LCBib29sIGZvcmNlX3ApCiB7CiAgIHN0cnVjdCBnbHlwaF9tYXRyaXggKmRlc2lyZWRf bWF0cml4ID0gdy0+ZGVzaXJlZF9tYXRyaXg7CisKKworLyogKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICov CisvKiBiZWdpbiBNVUxUSVBMRS1DVVJTT1JTICovCisKK21jX3Jlc2V0X2NhY2hlICh3LCBNQ19D QUNIRSk7CisKK21jX3Jlc2V0X2NhY2hlICh3LCBDSF9DQUNIRSk7CisKK21jX3Jlc2V0X2NhY2hl ICh3LCBGQ19DQUNIRSk7CisKKy8qIGVuZCBNVUxUSVBMRS1DVVJTT1JTICovCisvKiAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiogKi8KKworCiAgIGJvb2wgcGF1c2VkX3A7CiAgIGludCBwcmVlbXB0X2NvdW50 ID0gY2xpcF90b19ib3VuZHMgKDEsIGJhdWRfcmF0ZSAvIDI0MDAgKyAxLCBJTlRfTUFYKTsKICAg c3RydWN0IHJlZGlzcGxheV9pbnRlcmZhY2UgKnJpZiA9IEZSQU1FX1JJRiAoWEZSQU1FIChXSU5E T1dfRlJBTUUgKHcpKSk7CkBAIC0zNDk3LDYgKzM2MDcsMTkgQEAgdXBkYXRlX3dpbmRvdyAoc3Ry dWN0IHdpbmRvdyAqdywgYm9vbCBmb3JjZV9wKQogCiAgICAgc2V0X2N1cnNvcjoKIAorCisvKiAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiogKi8KKy8qIE1VTFRJUExFLUNVUlNPUlMgKi8KKworbWNfcG9wdWxh dGVfY2FjaGUgKHcsIE1DX0NBQ0hFKTsKKworbWNfcG9wdWxhdGVfY2FjaGUgKHcsIENIX0NBQ0hF KTsKKworbWNfcG9wdWxhdGVfY2FjaGUgKHcsIEZDX0NBQ0hFKTsKKworLyogKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqICovCisKKwogICAgICAgLyogVXBkYXRlIHRoZSBoZWFkZXIgbGluZSBhZnRlciBzY3Jv bGxpbmcgYmVjYXVzZSBhIG5ldyBoZWFkZXIKIAkgbGluZSB3b3VsZCBvdGhlcndpc2Ugb3Zlcndy aXRlIGxpbmVzIGF0IHRoZSB0b3Agb2YgdGhlIHdpbmRvdwogCSB0aGF0IGNhbiBiZSBzY3JvbGxl ZC4gICovCmRpZmYgLS1naXQgYS9zcmMvcGR1bXBlci5jIGIvc3JjL3BkdW1wZXIuYwppbmRleCBj YjI5MTVjLi5kYzc5ZWIxIDEwMDY0NAotLS0gYS9zcmMvcGR1bXBlci5jCisrKyBiL3NyYy9wZHVt cGVyLmMKQEAgLTI3NzAsNyArMjc3MCw3IEBAIGR1bXBfaGFzaF90YWJsZSAoc3RydWN0IGR1bXBf Y29udGV4dCAqY3R4LAogc3RhdGljIGR1bXBfb2ZmCiBkdW1wX2J1ZmZlciAoc3RydWN0IGR1bXBf Y29udGV4dCAqY3R4LCBjb25zdCBzdHJ1Y3QgYnVmZmVyICppbl9idWZmZXIpCiB7Ci0jaWYgQ0hF Q0tfU1RSVUNUUyAmJiAhZGVmaW5lZCBIQVNIX2J1ZmZlcl9FMzRBMTFDNkI5CisjaWYgQ0hFQ0tf U1RSVUNUUyAmJiAhZGVmaW5lZCBIQVNIX2J1ZmZlcl9CNzEyRjZCM0RDCiAjIGVycm9yICJidWZm ZXIgY2hhbmdlZC4gU2VlIENIRUNLX1NUUlVDVFMgY29tbWVudC4iCiAjZW5kaWYKICAgc3RydWN0 IGJ1ZmZlciBtdW5nZWRfYnVmZmVyID0gKmluX2J1ZmZlcjsKZGlmZiAtLWdpdCBhL3NyYy93aW5k b3cuaCBiL3NyYy93aW5kb3cuaAppbmRleCBmZGVmNDA3Li5kZDY2ZTMyIDEwMDY0NAotLS0gYS9z cmMvd2luZG93LmgKKysrIGIvc3JjL3dpbmRvdy5oCkBAIC04OCw2ICs4OCw0OCBAQCBkaXNwbGF5 IHRoZSBtZW51IGJhciBvciB0aGUgdG9vbCBiYXIgKHdoZW4gRW1hY3MgdXNlcyB0b29sa2l0cyB0 aGF0CiBkb24ndCBkaXNwbGF5IHRoZWlyIG93biBtZW51IGJhciBhbmQgdG9vbCBiYXIpIG9yIGEg dG9vbHRpcCBpbiBhCiB0b29sdGlwIGZyYW1lICh3aGVuIHRvb2x0aXBzIGFyZSBub3QgZGlzcGxh eSBieSB0aGUgdG9vbGtpdCkuICAqLwogCisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworLyog TVVMVElQTEUtQ1VSU09SUyAqLworCitzdHJ1Y3QgbXVsdGlwbGVfY3Vyc29yX2NhY2hlCit7Cisg IHB0cmRpZmZfdCBhbGxvY2F0ZWQ7CisgIHB0cmRpZmZfdCB1c2VkOworICBzdHJ1Y3QgaXRlbXMK KyAgeworICAgIGludCB4OworICAgIGludCBmeDsKKyAgICBpbnQgeTsKKyAgICBpbnQgZnk7Cisg ICAgaW50IGhwb3M7CisgICAgaW50IHZwb3M7CisgICAgaW50IHdkOworICAgIGludCBoOworICAg IGludCBjdXJzb3JfdHlwZTsKKyAgICBpbnQgY3Vyc29yX3dpZHRoOworICAgIHN0cnVjdCBSR0IK KyAgICB7CisgICAgICBkb3VibGUgcmVkOworICAgICAgZG91YmxlIGdyZWVuOworICAgICAgZG91 YmxlIGJsdWU7CisgICAgfSBmb3JlZ3JvdW5kLCBiYWNrZ3JvdW5kOworICAgIGJvb2wgYWN0aXZl X3A7CisgICAgaW50IGdseXBoX2ZsYXZvcjsKKyAgICBib29sIGVuYWJsZWRfcDsKKyAgfSAqY2Fj aGVzOworICBlbnVtIHR5cGVfb2ZfY2FjaGUKKyAgeworICAgIE5PX0NBQ0hFLAorICAgIE1DX0NB Q0hFLAorICAgIENIX0NBQ0hFLAorICAgIEZDX0NBQ0hFCisgIH0gY2FjaGVfdHlwZTsKK307CisK Ky8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiAqLworCisKIHN0cnVjdCBjdXJzb3JfcG9zCiB7CiAgIC8q IFBpeGVsIHBvc2l0aW9uLiAgVGhlc2UgYXJlIGFsd2F5cyB3aW5kb3cgcmVsYXRpdmUuICAqLwpA QCAtMzI0LDYgKzM2NiwxOSBAQCBzdHJ1Y3Qgd2luZG93CiAKICNpZmRlZiBIQVZFX1dJTkRPV19T WVNURU0KIAorCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKy8qIE1VTFRJUExFLUNVUlNPUlMg Ki8KKworICAgIHN0cnVjdCBtdWx0aXBsZV9jdXJzb3JfY2FjaGUgbWNfZWx0czsKKworICAgIHN0 cnVjdCBtdWx0aXBsZV9jdXJzb3JfY2FjaGUgY2hfZWx0czsKKworICAgIHN0cnVjdCBtdWx0aXBs ZV9jdXJzb3JfY2FjaGUgZmNfZWx0czsKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisKKwog ICAgIC8qIEN1cnNvciB0eXBlIG9mIGxhc3QgY3Vyc29yIGRyYXduIG9uIHRoZSB3aW5kb3cuICAq LwogICAgIGVudW0gdGV4dF9jdXJzb3Jfa2luZHMgcGh5c19jdXJzb3JfdHlwZTsKIAo= --Multipart_Sat_Apr_20_13:29:56_2019-1--