[COMMIT] Make get_char_table in loop bodies more tolerable without optimization.

Aidan Kehoe <[email protected]> Fri, 8 May 2015 12:54:21 +0100
Newsgroups gmane.emacs.xemacs.patches
Message-ID <[email protected]>
CkFQUFJPVkUgQ09NTUlUCgpOT1RFOiBUaGlzIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZC4KCiMg
SEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBBaWRhbiBLZWhvZSA8a2Vob2VhQHBhcmhhc2FyZC5u
ZXQ+CiMgRGF0ZSAxNDMxMDg1NjMzIC0zNjAwCiMgICAgICBGcmkgTWF5IDA4IDEyOjQ3OjEzIDIw
MTUgKzAxMDAKIyBOb2RlIElEIDJkYzg3MTFhZjUzN2YxNjY0ZDMxZjBkMDdlYjA0ODQ0YjcwNTYx
NGQKIyBQYXJlbnQgIGE0ODVjYWExMTMxZDllODUwYjRmYWYzNjlmOGQxZTgyNDMzNzllYzUKTWFr
ZSBnZXRfY2hhcl90YWJsZSBpbiBsb29wIGJvZGllcyBtb3JlIHRvbGVyYWJsZSB3aXRob3V0IG9w
dGltaXphdGlvbi4KCjIwMTUtMDUtMDggIEFpZGFuIEtlaG9lICA8a2Vob2VhQHBhcmhhc2FyZC5u
ZXQ+CgoJKiBjaGFydGFiLmggKGdldF9jaGFyX3RhYmxlKToKCSogY2hhcnRhYi5oIChnZXRfY2hh
cl90YWJsZV9taXJyb3JzX29rKTogTmV3LgoJUHJvdmlkZSBnZXRfY2hhcl90YWJsZV9taXJyb3Jz
X29rLCB3aGljaCBkaWZmZXJzIGZyb20KCWdldF9jaGFyX3RhYmxlIG9ubHkgaWYgRVJST1JfQ0hF
Q0tfVFlQRVMgaXMgZGVmaW5lZC4KCUltcGxlbWVudCBpdCwgYW5kIGdldF9jaGFyX3RhYmxlLCB1
c2luZyBhIG1hY3JvIHdyYXBwZXIgb2YKCWdldF9jaGFyX3RhYmxlXzEsIHNvIHRoYXQgb24gYnVp
bGRzIHdpdGhvdXQgb3B0aW1pemF0aW9uIGVhY2gKCWdldF9jaGFyX3RhYmxlIG5vIGxvbmdlciBy
ZXF1aXJlcyB0d28gQyBmdW5jdGlvbiBjYWxscy4KCSogY2hhcnRhYi5jICh1cGRhdGluZ19taXJy
b3JfZ2V0X3JhbmdlX2NoYXJfdGFibGUpOgoJVXNlIGdldF9jaGFyX3RhYmxlX21pcnJvcnNfb2su
CgkqIHN5bnRheC5oOgoJRGl0dG8uCgpkaWZmIC1yIGE0ODVjYWExMTMxZCAtciAyZGM4NzExYWY1
Mzcgc3JjL0NoYW5nZUxvZwotLS0gYS9zcmMvQ2hhbmdlTG9nCVR1ZSBNYXkgMDUgMTM6MTI6MTQg
MjAxNSArMDkwMAorKysgYi9zcmMvQ2hhbmdlTG9nCUZyaSBNYXkgMDggMTI6NDc6MTMgMjAxNSAr
MDEwMApAQCAtMSwzICsxLDE3IEBACisyMDE1LTA1LTA4ICBBaWRhbiBLZWhvZSAgPGtlaG9lYUBw
YXJoYXNhcmQubmV0PgorCisJKiBjaGFydGFiLmggKGdldF9jaGFyX3RhYmxlKToKKwkqIGNoYXJ0
YWIuaCAoZ2V0X2NoYXJfdGFibGVfbWlycm9yc19vayk6IE5ldy4KKwlQcm92aWRlIGdldF9jaGFy
X3RhYmxlX21pcnJvcnNfb2ssIHdoaWNoIGRpZmZlcnMgZnJvbQorCWdldF9jaGFyX3RhYmxlIG9u
bHkgaWYgRVJST1JfQ0hFQ0tfVFlQRVMgaXMgZGVmaW5lZC4KKwlJbXBsZW1lbnQgaXQsIGFuZCBn
ZXRfY2hhcl90YWJsZSwgdXNpbmcgYSBtYWNybyB3cmFwcGVyIG9mCisJZ2V0X2NoYXJfdGFibGVf
MSwgc28gdGhhdCBvbiBidWlsZHMgd2l0aG91dCBvcHRpbWl6YXRpb24gZWFjaAorCWdldF9jaGFy
X3RhYmxlIG5vIGxvbmdlciByZXF1aXJlcyB0d28gQyBmdW5jdGlvbiBjYWxscy4KKwkqIGNoYXJ0
YWIuYyAodXBkYXRpbmdfbWlycm9yX2dldF9yYW5nZV9jaGFyX3RhYmxlKToKKwlVc2UgZ2V0X2No
YXJfdGFibGVfbWlycm9yc19vay4KKwkqIHN5bnRheC5oOgorCURpdHRvLgorCiAyMDE1LTA0LTIw
ICBKZXJyeSBKYW1lcyAgPGphbWVzQHhlbWFjcy5vcmc+CiAKIAkqIGxpc3AuaCAobWF4X2FsaWdu
X3QpOiBEbyBub3QgZGVmaW5lIGlmIEMxMSBvciBDKysxMSwgb3IgYSBsYXRlcgpkaWZmIC1yIGE0
ODVjYWExMTMxZCAtciAyZGM4NzExYWY1Mzcgc3JjL2NoYXJ0YWIuYwotLS0gYS9zcmMvY2hhcnRh
Yi5jCVR1ZSBNYXkgMDUgMTM6MTI6MTQgMjAxNSArMDkwMAorKysgYi9zcmMvY2hhcnRhYi5jCUZy
aSBNYXkgMDggMTI6NDc6MTMgMjAxNSArMDEwMApAQCAtMTA0Miw3ICsxMDQyLDcgQEAKIAkJCQkg
ICAgICBMaXNwX09iamVjdCBtdWx0aSkKIHsKICAgaWYgKHJhbmdlLT50eXBlID09IENIQVJUQUJf
UkFOR0VfQ0hBUikKLSAgICByZXR1cm4gZ2V0X2NoYXJfdGFibGVfMSAocmFuZ2UtPmNoLCB0YWJs
ZSk7CisgICAgcmV0dXJuIGdldF9jaGFyX3RhYmxlX21pcnJvcnNfb2sgKHJhbmdlLT5jaCwgdGFi
bGUpOwogICBlbHNlCiAgICAgcmV0dXJuIGdldF9yYW5nZV9jaGFyX3RhYmxlXzEgKHJhbmdlLCB0
YWJsZSwgbXVsdGkpOwogfQpkaWZmIC1yIGE0ODVjYWExMTMxZCAtciAyZGM4NzExYWY1Mzcgc3Jj
L2NoYXJ0YWIuaAotLS0gYS9zcmMvY2hhcnRhYi5oCVR1ZSBNYXkgMDUgMTM6MTI6MTQgMjAxNSAr
MDkwMAorKysgYi9zcmMvY2hhcnRhYi5oCUZyaSBNYXkgMDggMTI6NDc6MTMgMjAxNSArMDEwMApA
QCAtMTQwLDEzICsxNDAsMjggQEAKIAkJCQkJICAgIGludCBsZWFkaW5nX2J5dGUsCiAJCQkJCSAg
ICBJY2hhciBjKTsKIAorI2lmZGVmIEVSUk9SX0NIRUNLX1RZUEVTCitERUNMQVJFX0lOTElORV9I
RUFERVIgKAorTGlzcF9PYmplY3QKK2dldF9jaGFyX3RhYmxlXzEgKEljaGFyIGNoLCBMaXNwX09i
amVjdCB0YWJsZSwgQm9vbGludCBtaXJyb3JzX2FsbG93ZWQpCispCisjZWxzZQogREVDTEFSRV9J
TkxJTkVfSEVBREVSICgKIExpc3BfT2JqZWN0CiBnZXRfY2hhcl90YWJsZV8xIChJY2hhciBjaCwg
TGlzcF9PYmplY3QgdGFibGUpCiApCisjZW5kaWYKIHsKICAgTGlzcF9PYmplY3QgcmV0dmFsOwog
ICBMaXNwX0NoYXJfVGFibGUgKmN0ID0gWENIQVJfVEFCTEUgKHRhYmxlKTsKKworI2lmZGVmIEVS
Uk9SX0NIRUNLX1RZUEVTCisgIGlmICghbWlycm9yc19hbGxvd2VkKQorICAgIHsKKyAgICAgIGFz
c2VydCAoIWN0LT5taXJyb3JfdGFibGVfcCk7CisgICAgfQorI2VuZGlmCisKICNpZmRlZiBNVUxF
CiAgIGlmIChjaCA8IE5VTV9BU0NJSV9DSEFSUykKICAgICByZXR2YWwgPSBjdC0+YXNjaWlbY2hd
OwpAQCAtMTY4LDE2ICsxODMsMTEgQEAKIH0KIAogI2lmZGVmIEVSUk9SX0NIRUNLX1RZUEVTCi1E
RUNMQVJFX0lOTElORV9IRUFERVIgKAotTGlzcF9PYmplY3QKLWdldF9jaGFyX3RhYmxlIChJY2hh
ciBjaCwgTGlzcF9PYmplY3QgdGFibGUpCi0pCi17Ci0gIGFzc2VydCAoIVhDSEFSX1RBQkxFICh0
YWJsZSktPm1pcnJvcl90YWJsZV9wKTsKLSAgcmV0dXJuIGdldF9jaGFyX3RhYmxlXzEgKGNoLCB0
YWJsZSk7Ci19CisjZGVmaW5lIGdldF9jaGFyX3RhYmxlKGNoLCB0YWJsZSkgZ2V0X2NoYXJfdGFi
bGVfMSAoY2gsIHRhYmxlLCAwKQorI2RlZmluZSBnZXRfY2hhcl90YWJsZV9taXJyb3JzX29rKGNo
LCB0YWJsZSkgZ2V0X2NoYXJfdGFibGVfMSAoY2gsIHRhYmxlLCAxKQogI2Vsc2UKLSNkZWZpbmUg
Z2V0X2NoYXJfdGFibGUoY2gsIHRhYmxlKSBnZXRfY2hhcl90YWJsZV8xIChjaCwgdGFibGUpCisj
ZGVmaW5lIGdldF9jaGFyX3RhYmxlIGdldF9jaGFyX3RhYmxlXzEKKyNkZWZpbmUgZ2V0X2NoYXJf
bWlycm9yc19vayBnZXRfY2hhcl90YWJsZV8xCiAjZW5kaWYKIAogZW51bSBjaGFydGFiX3Jhbmdl
X3R5cGUKZGlmZiAtciBhNDg1Y2FhMTEzMWQgLXIgMmRjODcxMWFmNTM3IHNyYy9zeW50YXguaAot
LS0gYS9zcmMvc3ludGF4LmgJVHVlIE1heSAwNSAxMzoxMjoxNCAyMDE1ICswOTAwCisrKyBiL3Ny
Yy9zeW50YXguaAlGcmkgTWF5IDA4IDEyOjQ3OjEzIDIwMTUgKzAxMDAKQEAgLTkyLDcgKzkyLDcg
QEAKIHsKICAgdHlwZV9jaGVja2luZ19hc3NlcnQgKFhDSEFSX1RBQkxFICh0YWJsZSktPm1pcnJv
cl90YWJsZV9wKTsKICAgdXBkYXRlX21pcnJvcl9zeW50YXhfaWZfZGlydHkgKHRhYmxlKTsKLSAg
cmV0dXJuIFhGSVhOVU0gKGdldF9jaGFyX3RhYmxlXzEgKGMsIHRhYmxlKSk7CisgIHJldHVybiBY
RklYTlVNIChnZXRfY2hhcl90YWJsZV9taXJyb3JzX29rIChjLCB0YWJsZSkpOwogfQogCiAjaWZk
ZWYgTk9UX1dPUlRIX1RIRV9FRkZPUlQKQEAgLTEwNSw3ICsxMDUsNyBAQAogKQogewogICB0eXBl
X2NoZWNraW5nX2Fzc2VydCAoWENIQVJfVEFCTEUgKHRhYmxlKS0+bWlycm9yX3RhYmxlX3ApOwot
ICByZXR1cm4gKGVudW0gc3ludGF4Y29kZSkgWEZJWE5VTSAoZ2V0X2NoYXJfdGFibGVfMSAoYywg
dGFibGUpKTsKKyAgcmV0dXJuIChlbnVtIHN5bnRheGNvZGUpIFhGSVhOVU0gKGdldF9jaGFyX3Rh
YmxlX21pcnJvcnNfb2sgKGMsIHRhYmxlKSk7CiB9CiAKICNlbmRpZiAvKiBOT1RfV09SVEhfVEhF
X0VGRk9SVCAqLwoKCi0tIArigJhUcmFtYWRvbCBpcyBmdXJ0aGVyIGZlZCB0byBjYXR0bGUgW+KA
pl0gd2hlbiB3b3JraW5nIHRoZW0gW+KApl0gKGFzIGRyYWZ0CmFuaW1hbHMpIHNvIHRoYXQgdGhl
IGFuaW1hbHMgZG8gbm90IGdldCB0aXJlZCBxdWlja2x5LiDigKbigJkKCeKAlCBBbmdld2FuZHRl
IENoZW1pZSwgU2VwdCAyMDE0LCBkZXNjcmliaW5nIHRoZSBzb2NpYWwgY29udGV4dCBvZgoJKHN5
bnRoZXRpYykgdHJhbWFkb2wgaGF2aW5nIGJlZW4gZm91bmQgaW4gQ2FtZXJvb24gdHJlZSByb290
cy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhFbWFj
cy1QYXRjaGVzIG1haWxpbmcgbGlzdApYRW1hY3MtUGF0Y2hlc0B4ZW1hY3Mub3JnCmh0dHA6Ly9s
aXN0cy54ZW1hY3Mub3JnL21haWxtYW4vbGlzdGluZm8veGVtYWNzLXBhdGNoZXMK