[COMMIT] Avoid allocation in #'integer-length; add #'logcount.
Aidan Kehoe <[email protected]> Fri, 29 May 2015 17:11:03 +0100
| Newsgroups | gmane.emacs.xemacs.patches |
|---|---|
| Message-ID | <[email protected]> |
ClllcywgdGhlcmUgYXJlIG90aGVyIHRoaW5ncyB0aGF0IGFyZSBhIGhpZ2hlciBwcmlvcml0eSB0 aGFuIHRoaXMuIFRoaXMgaXMKc29tZXRoaW5nIGRvbmUgd2hpbGUgcHJvY3Jhc3RpbmF0aW5nIGFi b3V0IHNvbWV0aGluZyBlbHNlLCBhbmQgZGVzcGl0ZSB0aGF0IEkKZmVlbCBpdOKAmXMgdXNlZnVs LgoKQVBQUk9WRSBDT01NSVQKCk5PVEU6IFRoaXMgcGF0Y2ggaGFzIGJlZW4gY29tbWl0dGVkLgoK IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIEFpZGFuIEtlaG9lIDxrZWhvZWFAcGFyaGFzYXJk Lm5ldD4KIyBEYXRlIDE0MzI5MTU1ODQgLTM2MDAKIyAgICAgIEZyaSBNYXkgMjkgMTc6MDY6MjQg MjAxNSArMDEwMAojIE5vZGUgSUQgMWFmNTNkMzVkZDUzMDAyM2M5ZTk2YTRjMjMwZjkzZTQxYTY0 MzMwNgojIFBhcmVudCAgYmQ0ZDJjOGVmOWNjMTkwODA1NzcyYWJiYWU3Y2JhNTQzZWY2ODU3NQpB dm9pZCBhbGxvY2F0aW9uIGluICMnaW50ZWdlci1sZW5ndGg7IGFkZCAjJ2xvZ2NvdW50LgoKbGlz cC9DaGFuZ2VMb2cgYWRkaXRpb246CgoyMDE1LTA1LTI5ICBBaWRhbiBLZWhvZSAgPGtlaG9lYUBw YXJoYXNhcmQubmV0PgoKCSogYnl0ZS1vcHRpbWl6ZS5lbCAoc2lkZS1lZmZlY3QtZnJlZS1mbnMp OgoJQWRkICMnaW50ZWdlci1sZW5ndGgsICMnbG9nY291bnQgaGVyZS4KCSogY2wtZXh0cmEuZWw6 CgkqIGNsLWV4dHJhLmVsIChpbnRlZ2VyLWxlbmd0aCk6CglVcGRhdGUgdGhpcyB0byBhdm9pZCBh bGxvY2F0aW5nIG1lbW9yeS4KCSogY2wtZXh0cmEuZWwgKGxvZ2NvdW50KTogTmV3LiBSZXR1cm4g dGhlIG51bWJlciBvZiBvbmUgYml0cyBpbgoJSU5URUdFUiwgaWYgbm9uLW5lZ2F0aXZlLiBGdW5j dGlvbiBmcm9tIENvbW1vbiBMaXNwLgoKdGVzdHMvQ2hhbmdlTG9nIGFkZGl0aW9uOgoKMjAxNS0w NS0yOSAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KCgkqIGF1dG9tYXRlZC9s aXNwLXRlc3RzLmVsOgoJVGVzdCAjJ2ludGVnZXItbGVuZ3RoLCAjJ2xvZ2NvdW50IGluIHRoaXMg ZmlsZS4KCmRpZmYgLXIgYmQ0ZDJjOGVmOWNjIC1yIDFhZjUzZDM1ZGQ1MyBsaXNwL0NoYW5nZUxv ZwotLS0gYS9saXNwL0NoYW5nZUxvZwlGcmkgTWF5IDE1IDE4OjExOjQ3IDIwMTUgKzAxMDAKKysr IGIvbGlzcC9DaGFuZ2VMb2cJRnJpIE1heSAyOSAxNzowNjoyNCAyMDE1ICswMTAwCkBAIC00LDYg KzQsMTYgQEAKIAkqIHNpbXBsZS5lbCAobGluZS1udW1iZXIpOiBNb3ZlZCB0byBidWZmZXIuYzsg d2UgaGF2ZSBhbiBleGlzdGluZwogCWxpbmUgbnVtYmVyIGNhY2hlIGluIEMsIGl0J3MgYSBzaGFt ZSBub3QgdG8gaGF2ZSBpdCBhdmFpbGFibGUuCiAKKzIwMTUtMDUtMjkgIEFpZGFuIEtlaG9lICA8 a2Vob2VhQHBhcmhhc2FyZC5uZXQ+CisKKwkqIGJ5dGUtb3B0aW1pemUuZWwgKHNpZGUtZWZmZWN0 LWZyZWUtZm5zKToKKwlBZGQgIydpbnRlZ2VyLWxlbmd0aCwgIydsb2djb3VudCBoZXJlLgorCSog Y2wtZXh0cmEuZWw6CisJKiBjbC1leHRyYS5lbCAoaW50ZWdlci1sZW5ndGgpOgorCVVwZGF0ZSB0 aGlzIHRvIGF2b2lkIGFsbG9jYXRpbmcgbWVtb3J5LgorCSogY2wtZXh0cmEuZWwgKGxvZ2NvdW50 KTogTmV3LiBSZXR1cm4gdGhlIG51bWJlciBvZiBvbmUgYml0cyBpbgorCUlOVEVHRVIsIGlmIG5v bi1uZWdhdGl2ZS4gRnVuY3Rpb24gZnJvbSBDb21tb24gTGlzcC4KKwogMjAxNS0wNC0xMSAgQWlk YW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KIAogCSogbXVsZS9tdWxlLWNtZHMuZWwg KHNldC1sb2NhbGUtZm9yLWxhbmd1YWdlLWVudmlyb25tZW50KToKZGlmZiAtciBiZDRkMmM4ZWY5 Y2MgLXIgMWFmNTNkMzVkZDUzIGxpc3AvYnl0ZS1vcHRpbWl6ZS5lbAotLS0gYS9saXNwL2J5dGUt b3B0aW1pemUuZWwJRnJpIE1heSAxNSAxODoxMTo0NyAyMDE1ICswMTAwCisrKyBiL2xpc3AvYnl0 ZS1vcHRpbWl6ZS5lbAlGcmkgTWF5IDI5IDE3OjA2OjI0IDIwMTUgKzAxMDAKQEAgLTEzMDMsOCAr MTMwMyw4IEBACiAJIGhhc2gtdGFibGUtdGVzdAogCSBoYXNoLXRhYmxlLXR5cGUKIAkgOzsKLQkg aW50LXRvLXN0cmluZwotCSBsZW5ndGggbG9nIGxvZzEwIGxvZ2FuZCBsb2diIGxvZ2lvciBsb2du b3QgbG9neG9yIGxzaAorCSBpbnRlZ2VyLWxlbmd0aCBpbnQtdG8tc3RyaW5nCisJIGxlbmd0aCBs b2cgbG9nMTAgbG9nYW5kIGxvZ2IgbG9nY291bnQgbG9naW9yIGxvZ25vdCBsb2d4b3IgbHNoCiAJ IG1hcmtlci1idWZmZXIgbWF4IG1lbWJlciBtZW1xIG1pbiBtb2QKIAkgbmV4dC13aW5kb3cgbnRo IG50aGNkciBudW1iZXItdG8tc3RyaW5nIG51bWVyYXRvcgogCSBwYXJzZS1jb2xvbi1wYXRoIHBs aXN0LWdldCBwcmV2aW91cy13aW5kb3cKZGlmZiAtciBiZDRkMmM4ZWY5Y2MgLXIgMWFmNTNkMzVk ZDUzIGxpc3AvY2wtZXh0cmEuZWwKLS0tIGEvbGlzcC9jbC1leHRyYS5lbAlGcmkgTWF5IDE1IDE4 OjExOjQ3IDIwMTUgKzAxMDAKKysrIGIvbGlzcC9jbC1leHRyYS5lbAlGcmkgTWF5IDI5IDE3OjA2 OjI0IDIwMTUgKzAxMDAKQEAgLTg0MCwxMSArODQwLDQxIEBACiAgICh3aXRoLWNhc2UtdGFibGUg KHN0YW5kYXJkLWNhc2UtdGFibGUpIChkb3duY2FzZSBjaGFyYWN0ZXIpKSkKIAogKGRlZnVuIGlu dGVnZXItbGVuZ3RoIChpbnRlZ2VyKQotICAiUmV0dXJuIHRoZSBudW1iZXIgb2YgYml0cyBuZWVk IHRvIHJlcHJlc2VudCBJTlRFR0VSIGluIHR3bydzIGNvbXBsZW1lbnQuIgotICAoZWNhc2UgKHNp Z251bSBpbnRlZ2VyKQotICAgICgwIDApCi0gICAgKC0xICgxLSAobGVuZ3RoIChmb3JtYXQgIiVi IiAoLSBpbnRlZ2VyKSkpKSkKLSAgICAoMSAobGVuZ3RoIChmb3JtYXQgIiViIiBpbnRlZ2VyKSkp KSkKKyAgIlJldHVybiB0aGUgbnVtYmVyIG9mIGJpdHMgbmVlZCB0byByZXByZXNlbnQgSU5URUdF UiBpbiB0d28ncyBjb21wbGVtZW50LgorCitFcXVpdmFsZW50IHRvIGAoY2VpbGluZyAobG9nICgx KyBpbnRlZ2VyKSAyKSknIGZvciBwb3NpdGl2ZSBpbnRlZ2VycywgYW5kCitgKGNlaWxpbmcgKGxv ZyAoLSBpbnRlZ2VyKSAyKSknIGZvciBuZWdhdGl2ZSBpbnRlZ2Vycy4iCisgIChjaGVjay10eXBl IGludGVnZXIgaW50ZWdlcikKKyAgKHdoZW4gKDwgaW50ZWdlciAwKQorICAgIDs7IERvbid0IHVz ZSAjJy0sIHdoaWNoIGZhaWxzIHNpbGVudGx5IHdpdGggbW9zdC1uZWdhdGl2ZS1maXhudW0uCisg ICAgKHNldGYgaW50ZWdlciAobG9nbm90IGludGVnZXIpKSkKKyAgKGxldCAoKGNvdW50IDApIChs YXN0IGludGVnZXIpKQorICAgICh3aGlsZSAobm90IChlcWwgKHNldHEgaW50ZWdlciAoLyBpbnRl Z2VyIDE2KSkgMCkpCisgICAgICAoc2V0ZiBsYXN0IGludGVnZXIKKyAgICAgICAgICAgIGNvdW50 ICgrIGNvdW50IDQpKSkKKyAgICAoKyAoYXJlZiAoZXZhbC13aGVuLWNvbXBpbGUKKyAgICAgICAg ICAgICAgKHZjb25jYXQgWzBdIChsb29wIGZvciBmaXhudW0gZnJvbSAxIGJlbG93IDE2CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0IChsZW5ndGggKGZvcm1hdCAiJWIi IGZpeG51bSkpKSkpCisgICAgICAgICAgICAgbGFzdCkKKyAgICAgICBjb3VudCkpKQorCisoZGVm dW4gbG9nY291bnQgKGludGVnZXIpCisgICJSZXR1cm4gdGhlIG51bWJlciBvZiBvbmUgYml0cyBp biBJTlRFR0VSLCBpZiBub24tbmVnYXRpdmUuCisKK0lmIElOVEVHRVIgaXMgbmVnYXRpdmUsIHJl dHVybiB0aGUgbnVtYmVyIG9mIHplcm8gYml0cyBvZiBsb3dlciBvcmRlciB0aGFuIHRoZQorbW9z dCBzaWduaWZpY2FudCBub24temVybyBiaXQuIgorICAobGV0ICgoaW50ZWdlciAoaWYgKD49IGlu dGVnZXIgMCkgaW50ZWdlciAoLSAoMSsgaW50ZWdlcikpKSkKKyAgICAgICAgKGNvdW50IDApKQor ICAgICh3aGlsZSAobm90IChlcWwgMCBpbnRlZ2VyKSkKKyAgICAgIChzZXRmIGNvdW50CisgICAg ICAgICAgICAoKyBjb3VudCAoYXJlZgorICAgICAgICAgICAgICAgICAgICAgIChldmFsLXdoZW4t Y29tcGlsZQorICAgICAgICAgICAgICAgICAgICAgICAodmNvbmNhdAorICAgICAgICAgICAgICAg ICAgICAgICAgKGxvb3AgZm9yIGZpeG51bSBmcm9tIDAgYmVsb3cgMTYKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbGxlY3QgKGNvdW50ID8xIChmb3JtYXQgIiViIiBmaXhudW0pKSkp KQorICAgICAgICAgICAgICAgICAgICAgICglIGludGVnZXIgMTYpKSkKKyAgICAgICAgICAgIGlu dGVnZXIgKC8gaW50ZWdlciAxNikpKQorICAgIGNvdW50KSkKIAogOzsgVGhlc2UgYXJlIGhlcmUg YmVjYXVzZSBsYWJlbHMgYW5kIHN5bWJvbC1tYWNyb2xldCBhcmUgbm90IGF2YWlsYWJsZSBpbgog Ozsgb2Jzb2xldGUuZWwuIFRoZXkgYXJlLCBob3dldmVyLCBhbGwgbWFya2VkIGFzIG9ic29sZXRl IGluIHRoYXQgZmlsZS4KZGlmZiAtciBiZDRkMmM4ZWY5Y2MgLXIgMWFmNTNkMzVkZDUzIHRlc3Rz L0NoYW5nZUxvZwotLS0gYS90ZXN0cy9DaGFuZ2VMb2cJRnJpIE1heSAxNSAxODoxMTo0NyAyMDE1 ICswMTAwCisrKyBiL3Rlc3RzL0NoYW5nZUxvZwlGcmkgTWF5IDI5IDE3OjA2OjI0IDIwMTUgKzAx MDAKQEAgLTEsMyArMSw4IEBACisyMDE1LTA1LTI5ICBBaWRhbiBLZWhvZSAgPGtlaG9lYUBwYXJo YXNhcmQubmV0PgorCisJKiBhdXRvbWF0ZWQvbGlzcC10ZXN0cy5lbDoKKwlUZXN0ICMnaW50ZWdl ci1sZW5ndGgsICMnbG9nY291bnQgaW4gdGhpcyBmaWxlLgorCiAyMDE1LTA1LTExICBBaWRhbiBL ZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgogCiAJKiBhdXRvbWF0ZWQvbXVsZS10ZXN0cy5l bDoKZGlmZiAtciBiZDRkMmM4ZWY5Y2MgLXIgMWFmNTNkMzVkZDUzIHRlc3RzL2F1dG9tYXRlZC9s aXNwLXRlc3RzLmVsCi0tLSBhL3Rlc3RzL2F1dG9tYXRlZC9saXNwLXRlc3RzLmVsCUZyaSBNYXkg MTUgMTg6MTE6NDcgMjAxNSArMDEwMAorKysgYi90ZXN0cy9hdXRvbWF0ZWQvbGlzcC10ZXN0cy5l bAlGcmkgTWF5IDI5IDE3OjA2OjI0IDIwMTUgKzAxMDAKQEAgLTU2NCw2ICs1NjQsNTYgQEAKICAg ICAoQXNzZXJ0IChlcSAyIChsb2d4b3Igb25lIHRocmVlKSkgKGxpc3Qgb25lIHRocmVlKSkpKQog CiA7Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cis7OyBUZXN0IGBpbnRlZ2VyLWxlbmd0aCcsIGBsb2djb3VudCcKKzs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKENoZWNrLUVycm9yIHdy b25nLXR5cGUtYXJndW1lbnQgKGludGVnZXItbGVuZ3RoIDAuMCkpCisoQ2hlY2stRXJyb3Igd3Jv bmctdHlwZS1hcmd1bWVudCAoaW50ZWdlci1sZW5ndGggJ3N5bWJvbCkpCisoQXNzZXJ0IChlcWwg KGludGVnZXItbGVuZ3RoIDApIDApKQorKEFzc2VydCAoZXFsIChpbnRlZ2VyLWxlbmd0aCAtMSkg MCkpCisoQXNzZXJ0IChlcWwgKGludGVnZXItbGVuZ3RoIDEpIDEpKQorKEFzc2VydCAoZXFsIChp bnRlZ2VyLWxlbmd0aCAjeC1GKSA0KSkKKyhBc3NlcnQgKGVxbCAoaW50ZWdlci1sZW5ndGggI3hG KSA0KSkKKyhBc3NlcnQgKGVxbCAoaW50ZWdlci1sZW5ndGggI3gtMTApIDQpKQorKEFzc2VydCAo ZXFsIChpbnRlZ2VyLWxlbmd0aCAjeDEwKSA1KSkKKworKENoZWNrLUVycm9yIHdyb25nLXR5cGUt YXJndW1lbnQgKGxvZ2NvdW50IDAuMCkpCisoQ2hlY2stRXJyb3Igd3JvbmctdHlwZS1hcmd1bWVu dCAobG9nY291bnQgJ3N5bWJvbCkpCisoQXNzZXJ0IChlcWwgKGxvZ2NvdW50IDApIDApKQorKEFz c2VydCAoZXFsIChsb2djb3VudCAxKSAxKSkKKyhBc3NlcnQgKGVxbCAobG9nY291bnQgLTEpIDAp KQorKEFzc2VydCAoZXFsIChsb2djb3VudCAjeC1GKSAzKSkKKyhBc3NlcnQgKGVxbCAobG9nY291 bnQgI3hGKSA0KSkKKyhBc3NlcnQgKGVxbCAobG9nY291bnQgI3gtMTApIDQpKQorKEFzc2VydCAo ZXFsIChsb2djb3VudCAjeDEwKSAxKSkKKworKG1hY3JvbGV0CisgICAgKChyYW5kb20tc2FtcGxl LW4gKCkgMTApIDs7IEluY3JlYXNlIHRoaXMgdG8gZ2V0IGEgYmlnZ2VyIHNhbXBsZS4KKyAgICAg KHRlc3QtaW50ZWdlci1sZW5ndGgtcmFuZG9tLXNhbXBsZSAoKQorICAgICAgIChjb25zCisgICAg ICAgICdwcm9nbgorICAgICAgICAobG9vcCBmb3IgaW5kZXggZnJvbSAwIHRvIChyYW5kb20tc2Ft cGxlLW4pCisgICAgICAgICAgICAgIG5jb25jIChsZXQqICgodmFsdWUgKHJhbmRvbSAoaWYgKGZl YXR1cmVwICdiaWdudW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxzaCBtb3N0LXBvc2l0aXZlLWZpeG51bSA0KQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtb3N0LXBvc2l0aXZlLWZpeG51bSkpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxlbmd0aCAobGVuZ3RoIChmb3JtYXQgIiViIiB2YWx1ZSkpKSkK KyAgICAgICAgICAgICAgICAgICAgICBgKChBc3NlcnQgKGVxbCAoaW50ZWdlci1sZW5ndGggLHZh bHVlKSAsbGVuZ3RoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChBc3NlcnQgKGVxbCAoaW50 ZWdlci1sZW5ndGggLCgxLSAoLSB2YWx1ZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAsbGVuZ3RoKSkpKSkpKQorICAgICAodGVzdC1sb2dj b3VudC1yYW5kb20tc2FtcGxlICgpCisgICAgICAgKGNvbnMKKyAgICAgICAgJ3Byb2duCisgICAg ICAgIChsb29wIGZvciBpbmRleCBmcm9tIDAgdG8gKHJhbmRvbS1zYW1wbGUtbikKKyAgICAgICAg ICAgICAgbmNvbmMgKGxldCogKCh2YWx1ZSAocmFuZG9tIChpZiAoZmVhdHVyZXAgJ2JpZ251bSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobHNoIG1vc3Qt cG9zaXRpdmUtZml4bnVtIDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1vc3QtcG9zaXRpdmUtZml4bnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY291bnQgKGNvdW50ID8xIChmb3JtYXQgIiViIiB2YWx1ZSkpKSkKKyAgICAgICAgICAgICAg ICAgICAgICBgKChBc3NlcnQgKGVxbCAobG9nY291bnQgLHZhbHVlKSAsY291bnQpKQorICAgICAg ICAgICAgICAgICAgICAgICAgKEFzc2VydCAoZXFsIChsb2djb3VudCAsKGxvZ25vdCB2YWx1ZSkp ICxjb3VudCkpKSkpKSkpCisgICh0ZXN0LWludGVnZXItbGVuZ3RoLXJhbmRvbS1zYW1wbGUpCisg ICh0ZXN0LWxvZ2NvdW50LXJhbmRvbS1zYW1wbGUpKQorCis7Oy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA7OyBUZXN0IGAlJywgbW9kCiA7Oy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoQ2hl Y2stRXJyb3Igd3JvbmctbnVtYmVyLW9mLWFyZ3VtZW50cyAoJSkpCgoKLS0gCuKAmFRyYW1hZG9s IGlzIGZ1cnRoZXIgZmVkIHRvIGNhdHRsZSBb4oCmXSB3aGVuIHdvcmtpbmcgdGhlbSBb4oCmXSAo YXMgZHJhZnQKYW5pbWFscykgc28gdGhhdCB0aGUgYW5pbWFscyBkbyBub3QgZ2V0IHRpcmVkIHF1 aWNrbHkuIOKApuKAmQoJ4oCUIEFuZ2V3YW5kdGUgQ2hlbWllLCBTZXB0IDIwMTQsIGRlc2NyaWJp bmcgdGhlIHNvY2lhbCBjb250ZXh0IG9mCgkoc3ludGhldGljKSB0cmFtYWRvbCBoYXZpbmcgYmVl biBmb3VuZCBpbiBDYW1lcm9vbiB0cmVlIHJvb3RzLgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWEVtYWNzLVBhdGNoZXMgbWFpbGluZyBsaXN0ClhFbWFj cy1QYXRjaGVzQHhlbWFjcy5vcmcKaHR0cDovL2xpc3RzLnhlbWFjcy5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW1hY3MtcGF0Y2hlcwo=