From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12359 invoked by alias); 18 Apr 2011 20:41:53 -0000 Received: (qmail 12275 invoked by uid 22791); 18 Apr 2011 20:41:51 -0000 X-SWARE-Spam-Status: No, hits=-0.9 required=5.0 tests=AWL,BAYES_50,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_CP X-Spam-Check-By: sourceware.org Received: from mail-pv0-f175.google.com (HELO mail-pv0-f175.google.com) (74.125.83.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 18 Apr 2011 20:41:34 +0000 Received: by pvc30 with SMTP id 30so2787626pvc.20 for ; Mon, 18 Apr 2011 13:41:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.68.13.200 with SMTP id j8mr403597pbc.205.1303159293711; Mon, 18 Apr 2011 13:41:33 -0700 (PDT) Received: by 10.68.62.132 with HTTP; Mon, 18 Apr 2011 13:41:33 -0700 (PDT) Date: Mon, 18 Apr 2011 20:50:00 -0000 Message-ID: Subject: [Patch, fortran] Use xcalloc instead of gfc_getmem From: Janne Blomqvist To: Fortran List , GCC Patches Content-Type: multipart/mixed; boundary=bcaec5215635c993de04a1376afe Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-04/txt/msg01453.txt.bz2 --bcaec5215635c993de04a1376afe Content-Type: text/plain; charset=UTF-8 Content-length: 1120 Hi, the attached patch replaces gfc_getmem with calls to xcalloc (from libiberty). Apart from reducing duplicated code, calloc is better than malloc + memset, as the allocator knows that the kernel always gives out zeroed pages so in some cases it can avoid memset'in the area. Regtested on x86_64-unknown-linux-gnu, Ok for trunk? 2011-04-18 Janne Blomqvist * misc.c (gfc_getmem): Remove function. * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem usage with xcalloc. * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with xcalloc. * options.c (gfc_handle_module_path_options) (gfc_get_option_string): Likewise. * resolve.c (gfc_resolve_forall): Likewise. * scanner.c (load_file): Likewise. * simplify.c (simplify_transformation_to_array): Likewise. * target-memory.c (gfc_target_interpret_expr): Likewise. * trans-common.c (get_segment_info, copy_equiv_list_to_ns) (get_init_field): Likewise. * trans-expr.c (gfc_conv_statement_function): Likewise. * trans-io.c (nml_full_name): Likewise. * trans-stmt.c (gfc_trans_forall_1): Likewise. -- Janne Blomqvist --bcaec5215635c993de04a1376afe Content-Type: text/x-patch; charset=US-ASCII; name="xcalloc.diff" Content-Disposition: attachment; filename="xcalloc.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gmnvdi910 Content-length: 14360 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2V4cHIuYyBiL2djYy9mb3J0cmFu L2V4cHIuYwppbmRleCAxZTMxNjUzLi5iMzAwMzk4IDEwMDY0NAotLS0gYS9n Y2MvZm9ydHJhbi9leHByLmMKKysrIGIvZ2NjL2ZvcnRyYW4vZXhwci5jCkBA IC0zNTgzLDcgKzM1ODMsNyBAQCBnZmNfY2hlY2tfYXNzaWduX3N5bWJvbCAo Z2ZjX3N5bWJvbCAqc3ltLCBnZmNfZXhwciAqcnZhbHVlKQogICBsdmFsdWUu dHMgPSBzeW0tPnRzOwogICBpZiAoc3ltLT5hcykKICAgICBsdmFsdWUucmFu ayA9IHN5bS0+YXMtPnJhbms7Ci0gIGx2YWx1ZS5zeW10cmVlID0gKGdmY19z eW10cmVlICopIGdmY19nZXRtZW0gKHNpemVvZiAoZ2ZjX3N5bXRyZWUpKTsK KyAgbHZhbHVlLnN5bXRyZWUgPSAoZ2ZjX3N5bXRyZWUgKikgeGNhbGxvYyAo MSwgc2l6ZW9mIChnZmNfc3ltdHJlZSkpOwogICBsdmFsdWUuc3ltdHJlZS0+ bi5zeW0gPSBzeW07CiAgIGx2YWx1ZS53aGVyZSA9IHN5bS0+ZGVjbGFyZWRf YXQ7CiAKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmggYi9n Y2MvZm9ydHJhbi9nZm9ydHJhbi5oCmluZGV4IGNlMTFjMDcuLmU2NDQwOWIg MTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKKysrIGIvZ2Nj L2ZvcnRyYW4vZ2ZvcnRyYW4uaApAQCAtMTI3Myw3ICsxMjczLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgZ2ZjX2VudHJ5X2xpc3QKIGdmY19lbnRyeV9saXN0Owog CiAjZGVmaW5lIGdmY19nZXRfZW50cnlfbGlzdCgpIFwKLSAgKGdmY19lbnRy eV9saXN0ICopIGdmY19nZXRtZW0oc2l6ZW9mKGdmY19lbnRyeV9saXN0KSkK KyAgKGdmY19lbnRyeV9saXN0ICopIHhjYWxsb2MgKDEsIHNpemVvZihnZmNf ZW50cnlfbGlzdCkpCiAKIC8qIExpc3RzIG9mIHJlbmFtZSBpbmZvIGZvciB0 aGUgVVNFIHN0YXRlbWVudC4gICovCiAKQEAgLTEzMDMsNyArMTMwMyw3IEBA IHR5cGVkZWYgc3RydWN0IGdmY191c2VfbGlzdAogZ2ZjX3VzZV9saXN0Owog CiAjZGVmaW5lIGdmY19nZXRfdXNlX2xpc3QoKSBcCi0gIChnZmNfdXNlX2xp c3QgKikgZ2ZjX2dldG1lbShzaXplb2YoZ2ZjX3VzZV9saXN0KSkKKyAgKGdm Y191c2VfbGlzdCAqKSB4Y2FsbG9jICgxLCBzaXplb2YoZ2ZjX3VzZV9saXN0 KSkKIAogLyogV2l0aGluIGEgbmFtZXNwYWNlLCBzeW1ib2xzIGFyZSBwb2lu dGVkIHRvIGJ5IHN5bXRyZWUgbm9kZXMgdGhhdAogICAgYXJlIGxpbmtlZCB0 b2dldGhlciBpbiBhIGJhbGFuY2VkIGJpbmFyeSB0cmVlLiAgVGhlcmUgY2Fu IGJlCkBAIC0xNzgzLDcgKzE3ODMsNyBAQCB0eXBlZGVmIHN0cnVjdCBnZmNf ZXhwcgogZ2ZjX2V4cHI7CiAKIAotI2RlZmluZSBnZmNfZ2V0X3NoYXBlKHJh bmspICgobXB6X3QgKikgZ2ZjX2dldG1lbSgocmFuaykqc2l6ZW9mKG1wel90 KSkpCisjZGVmaW5lIGdmY19nZXRfc2hhcGUocmFuaykgKChtcHpfdCAqKSB4 Y2FsbG9jKChyYW5rKSwgc2l6ZW9mKG1wel90KSkpCiAKIC8qIFN0cnVjdHVy ZXMgZm9yIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBkaWZmZXJlbnQg a2luZHMgb2YKICAgIG51bWJlcnMuICBUaGUgZmlyc3Qgc2V0IG9mIGludGVn ZXIgcGFyYW1ldGVycyBkZWZpbmUgYWxsIHRoZXJlIGlzCkBAIC0yMzY5LDcg KzIzNjksNiBAQCB2b2lkIGdmY19zdGFydF9zb3VyY2VfZmlsZXMgKHZvaWQp Owogdm9pZCBnZmNfZW5kX3NvdXJjZV9maWxlcyAodm9pZCk7CiAKIC8qIG1p c2MuYyAqLwotdm9pZCAqZ2ZjX2dldG1lbSAoc2l6ZV90KSBBVFRSSUJVVEVf TUFMTE9DOwogaW50IGdmY190ZXJtaW5hbF93aWR0aCAodm9pZCk7CiB2b2lk IGdmY19jbGVhcl90cyAoZ2ZjX3R5cGVzcGVjICopOwogRklMRSAqZ2ZjX29w ZW5fZmlsZSAoY29uc3QgY2hhciAqKTsKZGlmZiAtLWdpdCBhL2djYy9mb3J0 cmFuL21pc2MuYyBiL2djYy9mb3J0cmFuL21pc2MuYwppbmRleCBhNTRmZmMw Li4xMjc0MDQ3IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9taXNjLmMKKysr IGIvZ2NjL2ZvcnRyYW4vbWlzYy5jCkBAIC0yMywyNCArMjMsNiBAQCBhbG9u ZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNl ZQogI2luY2x1ZGUgInN5c3RlbS5oIgogI2luY2x1ZGUgImdmb3J0cmFuLmgi CiAKLS8qIEdldCBhIGJsb2NrIG9mIG1lbW9yeS4gIE1hbnkgY2FsbGVycyBh c3N1bWUgdGhhdCB0aGUgbWVtb3J5IHdlCi0gICByZXR1cm4gaXMgemVyb2Vk LiAgKi8KLQotdm9pZCAqCi1nZmNfZ2V0bWVtIChzaXplX3QgbikKLXsKLSAg dm9pZCAqcDsKLQotICBpZiAobiA9PSAwKQotICAgIHJldHVybiBOVUxMOwot Ci0gIHAgPSB4bWFsbG9jIChuKTsKLSAgaWYgKHAgPT0gTlVMTCkKLSAgICBn ZmNfZmF0YWxfZXJyb3IgKCJBbGxvY2F0aW9uIHdvdWxkIGV4Y2VlZCBtZW1v cnkgbGltaXQgLS0gbWFsbG9jKCkgZmFpbGVkIik7Ci0gIG1lbXNldCAocCwg MCwgbik7Ci0gIHJldHVybiBwOwotfQotCiAKIC8qIEdldCB0ZXJtaW5hbCB3 aWR0aC4gICovCiAKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL29wdGlvbnMu YyBiL2djYy9mb3J0cmFuL29wdGlvbnMuYwppbmRleCBhNGQ5YTY2Li43NTNh MzY1IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9vcHRpb25zLmMKKysrIGIv Z2NjL2ZvcnRyYW4vb3B0aW9ucy5jCkBAIC00NzEsNyArNDcxLDcgQEAgZ2Zj X2hhbmRsZV9tb2R1bGVfcGF0aF9vcHRpb25zIChjb25zdCBjaGFyICphcmcp CiAgIGlmIChnZmNfb3B0aW9uLm1vZHVsZV9kaXIgIT0gTlVMTCkKICAgICBn ZmNfZmF0YWxfZXJyb3IgKCJnZm9ydHJhbjogT25seSBvbmUgLUogb3B0aW9u IGFsbG93ZWQiKTsKIAotICBnZmNfb3B0aW9uLm1vZHVsZV9kaXIgPSAoY2hh ciAqKSBnZmNfZ2V0bWVtIChzdHJsZW4gKGFyZykgKyAyKTsKKyAgZ2ZjX29w dGlvbi5tb2R1bGVfZGlyID0gKGNoYXIgKikgeGNhbGxvYyAoc3RybGVuIChh cmcpICsgMiwgMSk7CiAgIHN0cmNweSAoZ2ZjX29wdGlvbi5tb2R1bGVfZGly LCBhcmcpOwogCiAgIGdmY19hZGRfaW5jbHVkZV9wYXRoIChnZmNfb3B0aW9u Lm1vZHVsZV9kaXIsIHRydWUsIGZhbHNlKTsKQEAgLTEwNTYsNyArMTA1Niw3 IEBAIGdmY19nZXRfb3B0aW9uX3N0cmluZyAodm9pZCkKICAgICAgICAgfQog ICAgIH0KIAotICByZXN1bHQgPSAoY2hhciAqKSBnZmNfZ2V0bWVtIChsZW4p OworICByZXN1bHQgPSAoY2hhciAqKSB4Y2FsbG9jIChsZW4sIDEpOwogCiAg IHBvcyA9IDA7IAogICBmb3IgKGogPSAxOyBqIDwgc2F2ZV9kZWNvZGVkX29w dGlvbnNfY291bnQ7IGorKykKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jl c29sdmUuYyBiL2djYy9mb3J0cmFuL3Jlc29sdmUuYwppbmRleCAwOWNmZTc4 Li42MGFlZDlhIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9yZXNvbHZlLmMK KysrIGIvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCkBAIC04NTk4LDcgKzg1OTgs NyBAQCBnZmNfcmVzb2x2ZV9mb3JhbGwgKGdmY19jb2RlICpjb2RlLCBnZmNf bmFtZXNwYWNlICpucywgaW50IGZvcmFsbF9zYXZlKQogICAgICAgdG90YWxf dmFyID0gZ2ZjX2NvdW50X2ZvcmFsbF9pdGVyYXRvcnMgKGNvZGUpOwogCiAg ICAgICAvKiBBbGxvY2F0ZSBWQVJfRVhQUiB3aXRoIE5VTUJFUl9PRl9GT1JB TExfSU5ERVggZWxlbWVudHMuICAqLwotICAgICAgdmFyX2V4cHIgPSAoZ2Zj X2V4cHIgKiopIGdmY19nZXRtZW0gKHRvdGFsX3ZhciAqIHNpemVvZiAoZ2Zj X2V4cHIgKikpOworICAgICAgdmFyX2V4cHIgPSAoZ2ZjX2V4cHIgKiopIHhj YWxsb2MgKHRvdGFsX3Zhciwgc2l6ZW9mIChnZmNfZXhwciAqKSk7CiAgICAg fQogCiAgIC8qIFRoZSBpbmZvcm1hdGlvbiBhYm91dCBGT1JBTEwgaXRlcmF0 b3IsIGluY2x1ZGluZyBGT1JBTEwgaW5kZXggc3RhcnQsIGVuZApkaWZmIC0t Z2l0IGEvZ2NjL2ZvcnRyYW4vc2Nhbm5lci5jIGIvZ2NjL2ZvcnRyYW4vc2Nh bm5lci5jCmluZGV4IDdmOTllYjguLmY5OTQyOWEgMTAwNjQ0Ci0tLSBhL2dj Yy9mb3J0cmFuL3NjYW5uZXIuYworKysgYi9nY2MvZm9ydHJhbi9zY2FubmVy LmMKQEAgLTIwMTIsOCArMjAxMiw4IEBAIGxvYWRfZmlsZSAoY29uc3QgY2hh ciAqcmVhbGZpbGVuYW1lLCBjb25zdCBjaGFyICpkaXNwbGF5ZWRuYW1lLCBi b29sIGluaXRpYWwpCiAKICAgICAgIC8qIEFkZCBsaW5lLiAgKi8KIAotICAg ICAgYiA9IChnZmNfbGluZWJ1ZiAqKSBnZmNfZ2V0bWVtIChnZmNfbGluZWJ1 Zl9oZWFkZXJfc2l6ZQotCQkJCSAgICAgICsgKGxlbiArIDEpICogc2l6ZW9m IChnZmNfY2hhcl90KSk7CisgICAgICBiID0gKGdmY19saW5lYnVmICopIHhj YWxsb2MgKDEsIGdmY19saW5lYnVmX2hlYWRlcl9zaXplCisJCQkJICAgKyAo bGVuICsgMSkgKiBzaXplb2YgKGdmY19jaGFyX3QpKTsKIAogICAgICAgYi0+ bG9jYXRpb24KIAk9IGxpbmVtYXBfbGluZV9zdGFydCAobGluZV90YWJsZSwg Y3VycmVudF9maWxlLT5saW5lKyssIDEyMCk7CmRpZmYgLS1naXQgYS9nY2Mv Zm9ydHJhbi9zaW1wbGlmeS5jIGIvZ2NjL2ZvcnRyYW4vc2ltcGxpZnkuYwpp bmRleCBjMmVjZTk1Li4xZTA1MmM5IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJh bi9zaW1wbGlmeS5jCisrKyBiL2djYy9mb3J0cmFuL3NpbXBsaWZ5LmMKQEAg LTUxNyw3ICs1MTcsNyBAQCBzaW1wbGlmeV90cmFuc2Zvcm1hdGlvbl90b19h cnJheSAoZ2ZjX2V4cHIgKnJlc3VsdCwgZ2ZjX2V4cHIgKmFycmF5LCBnZmNf ZXhwciAqZAogICBnZmNfYXJyYXlfc2l6ZSAoYXJyYXksICZzaXplKTsKICAg YXJyYXlzaXplID0gbXB6X2dldF91aSAoc2l6ZSk7CiAKLSAgYXJyYXl2ZWMg PSAoZ2ZjX2V4cHIqKikgZ2ZjX2dldG1lbSAoc2l6ZW9mIChnZmNfZXhwciop ICogYXJyYXlzaXplKTsKKyAgYXJyYXl2ZWMgPSAoZ2ZjX2V4cHIqKikgeGNh bGxvYyAoYXJyYXlzaXplLCBzaXplb2YgKGdmY19leHByKikpOwogCiAgIGFy cmF5X2N0b3IgPSBnZmNfY29uc3RydWN0b3JfZmlyc3QgKGFycmF5LT52YWx1 ZS5jb25zdHJ1Y3Rvcik7CiAgIG1hc2tfY3RvciA9IE5VTEw7CkBAIC01NDMs NyArNTQzLDcgQEAgc2ltcGxpZnlfdHJhbnNmb3JtYXRpb25fdG9fYXJyYXkg KGdmY19leHByICpyZXN1bHQsIGdmY19leHByICphcnJheSwgZ2ZjX2V4cHIg KmQKICAgcmVzdWx0c2l6ZSA9IG1wel9nZXRfdWkgKHNpemUpOwogICBtcHpf Y2xlYXIgKHNpemUpOwogCi0gIHJlc3VsdHZlYyA9IChnZmNfZXhwcioqKSBn ZmNfZ2V0bWVtIChzaXplb2YgKGdmY19leHByKikgKiByZXN1bHRzaXplKTsK KyAgcmVzdWx0dmVjID0gKGdmY19leHByKiopIHhjYWxsb2MgKHJlc3VsdHNp emUsIHNpemVvZiAoZ2ZjX2V4cHIqKSk7CiAgIHJlc3VsdF9jdG9yID0gZ2Zj X2NvbnN0cnVjdG9yX2ZpcnN0IChyZXN1bHQtPnZhbHVlLmNvbnN0cnVjdG9y KTsKICAgZm9yIChpID0gMDsgaSA8IHJlc3VsdHNpemU7ICsraSkKICAgICB7 CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90YXJnZXQtbWVtb3J5LmMgYi9n Y2MvZm9ydHJhbi90YXJnZXQtbWVtb3J5LmMKaW5kZXggMDNhNWI1OC4uZGFh ODhjZiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdGFyZ2V0LW1lbW9yeS5j CisrKyBiL2djYy9mb3J0cmFuL3RhcmdldC1tZW1vcnkuYwpAQCAtNTY5LDcg KzU2OSw3IEBAIGdmY190YXJnZXRfaW50ZXJwcmV0X2V4cHIgKHVuc2lnbmVk IGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmZlcl9zaXplLAogICBlbHNlCiAg ICAgewogICAgICAgcmVzdWx0LT5yZXByZXNlbnRhdGlvbi5zdHJpbmcgPQot ICAgICAgICAoY2hhciAqKSBnZmNfZ2V0bWVtIChyZXN1bHQtPnJlcHJlc2Vu dGF0aW9uLmxlbmd0aCArIDEpOworICAgICAgICAoY2hhciAqKSB4Y2FsbG9j IChyZXN1bHQtPnJlcHJlc2VudGF0aW9uLmxlbmd0aCArIDEsIDEpOwogICAg ICAgbWVtY3B5IChyZXN1bHQtPnJlcHJlc2VudGF0aW9uLnN0cmluZywgYnVm ZmVyLAogCSAgICAgIHJlc3VsdC0+cmVwcmVzZW50YXRpb24ubGVuZ3RoKTsK ICAgICAgIHJlc3VsdC0+cmVwcmVzZW50YXRpb24uc3RyaW5nW3Jlc3VsdC0+ cmVwcmVzZW50YXRpb24ubGVuZ3RoXSA9ICdcMCc7CmRpZmYgLS1naXQgYS9n Y2MvZm9ydHJhbi90cmFucy1jb21tb24uYyBiL2djYy9mb3J0cmFuL3RyYW5z LWNvbW1vbi5jCmluZGV4IGEyYjI2MDUuLjBjZDQ2OTkgMTAwNjQ0Ci0tLSBh L2djYy9mb3J0cmFuL3RyYW5zLWNvbW1vbi5jCisrKyBiL2djYy9mb3J0cmFu L3RyYW5zLWNvbW1vbi5jCkBAIC0xMzMsNyArMTMzLDcgQEAgZ2V0X3NlZ21l bnRfaW5mbyAoZ2ZjX3N5bWJvbCAqIHN5bSwgSE9TVF9XSURFX0lOVCBvZmZz ZXQpCiAgICAgZ2ZjX2NvbnZfY29uc3RfY2hhcmxlbiAoc3ltLT50cy51LmNs KTsKIAogICAvKiBDcmVhdGUgdGhlIHNlZ21lbnRfaW5mbyBhbmQgZmlsbCBp dCBpbi4gICovCi0gIHMgPSAoc2VnbWVudF9pbmZvICopIGdmY19nZXRtZW0g KHNpemVvZiAoc2VnbWVudF9pbmZvKSk7CisgIHMgPSAoc2VnbWVudF9pbmZv ICopIHhjYWxsb2MgKDEsIHNpemVvZiAoc2VnbWVudF9pbmZvKSk7CiAgIHMt PnN5bSA9IHN5bTsKICAgLyogV2Ugd2lsbCB1c2UgdGhpcyB0eXBlIHdoZW4g YnVpbGRpbmcgdGhlIHNlZ21lbnQgYWdncmVnYXRlIHR5cGUuICAqLwogICBz LT5maWVsZCA9IGdmY19zeW1fdHlwZSAoc3ltKTsKQEAgLTE1NSwxNCArMTU1 LDE0IEBAIGNvcHlfZXF1aXZfbGlzdF90b19ucyAoc2VnbWVudF9pbmZvICpj KQogICBnZmNfZXF1aXZfaW5mbyAqczsKICAgZ2ZjX2VxdWl2X2xpc3QgKmw7 CiAKLSAgbCA9IChnZmNfZXF1aXZfbGlzdCAqKSBnZmNfZ2V0bWVtIChzaXpl b2YgKGdmY19lcXVpdl9saXN0KSk7CisgIGwgPSAoZ2ZjX2VxdWl2X2xpc3Qg KikgeGNhbGxvYyAoMSwgc2l6ZW9mIChnZmNfZXF1aXZfbGlzdCkpOwogCiAg IGwtPm5leHQgPSBjLT5zeW0tPm5zLT5lcXVpdl9saXN0czsKICAgYy0+c3lt LT5ucy0+ZXF1aXZfbGlzdHMgPSBsOwogCiAgIGZvciAoZiA9IGM7IGY7IGYg PSBmLT5uZXh0KQogICAgIHsKLSAgICAgIHMgPSAoZ2ZjX2VxdWl2X2luZm8g KikgZ2ZjX2dldG1lbSAoc2l6ZW9mIChnZmNfZXF1aXZfaW5mbykpOworICAg ICAgcyA9IChnZmNfZXF1aXZfaW5mbyAqKSB4Y2FsbG9jICgxLCBzaXplb2Yg KGdmY19lcXVpdl9pbmZvKSk7CiAgICAgICBzLT5uZXh0ID0gbC0+ZXF1aXY7 CiAgICAgICBsLT5lcXVpdiA9IHM7CiAgICAgICBzLT5zeW0gPSBmLT5zeW07 CkBAIC01MDUsOCArNTA1LDggQEAgZ2V0X2luaXRfZmllbGQgKHNlZ21lbnRf aW5mbyAqaGVhZCwgdHJlZSB1bmlvbl90eXBlLCB0cmVlICpmaWVsZF9pbml0 LAogCiAgIC8qIE5vdyBhYnNvcmIgYWxsIHRoZSBpbml0aWFsaXplciBkYXRh IGludG8gYSBzaW5nbGUgdmVjdG9yLAogICAgICB3aGlsc3QgY2hlY2tpbmcg Zm9yIG92ZXJsYXBwaW5nLCB1bmVxdWFsIHZhbHVlcy4gICovCi0gIGRhdGEg PSAodW5zaWduZWQgY2hhciopZ2ZjX2dldG1lbSAoKHNpemVfdClsZW5ndGgp OwotICBjaGsgPSAodW5zaWduZWQgY2hhciopZ2ZjX2dldG1lbSAoKHNpemVf dClsZW5ndGgpOworICBkYXRhID0gKHVuc2lnbmVkIGNoYXIqKSB4Y2FsbG9j ICgoc2l6ZV90KWxlbmd0aCwgMSk7CisgIGNoayA9ICh1bnNpZ25lZCBjaGFy KikgeGNhbGxvYyAoKHNpemVfdClsZW5ndGgsIDEpOwogCiAgIC8qIFRPRE8g LSBjaGFuZ2UgdGhpcyB3aGVuIGRlZmF1bHQgaW5pdGlhbGl6YXRpb24gaXMg aW1wbGVtZW50ZWQuICAqLwogICBtZW1zZXQgKGRhdGEsICdcMCcsIChzaXpl X3QpbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWV4 cHIuYyBiL2djYy9mb3J0cmFuL3RyYW5zLWV4cHIuYwppbmRleCBhZjE5ZDMy Li5hMDA0NzY0IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1leHBy LmMKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jCkBAIC0zOTU3LDgg KzM5NTcsOCBAQCBnZmNfY29udl9zdGF0ZW1lbnRfZnVuY3Rpb24gKGdmY19z ZSAqIHNlLCBnZmNfZXhwciAqIGV4cHIpCiAgIG4gPSAwOwogICBmb3IgKGZh cmdzID0gc3ltLT5mb3JtYWw7IGZhcmdzOyBmYXJncyA9IGZhcmdzLT5uZXh0 KQogICAgIG4rKzsKLSAgc2F2ZWRfdmFycyA9IChnZmNfc2F2ZWRfdmFyICop Z2ZjX2dldG1lbSAobiAqIHNpemVvZiAoZ2ZjX3NhdmVkX3ZhcikpOwotICB0 ZW1wX3ZhcnMgPSAodHJlZSAqKWdmY19nZXRtZW0gKG4gKiBzaXplb2YgKHRy ZWUpKTsKKyAgc2F2ZWRfdmFycyA9IChnZmNfc2F2ZWRfdmFyICopIHhjYWxs b2MgKG4sIHNpemVvZiAoZ2ZjX3NhdmVkX3ZhcikpOworICB0ZW1wX3ZhcnMg PSAodHJlZSAqKSB4Y2FsbG9jIChuLCBzaXplb2YgKHRyZWUpKTsKIAogICBm b3IgKGZhcmdzID0gc3ltLT5mb3JtYWwsIG4gPSAwOyBmYXJnczsgZmFyZ3Mg PSBmYXJncy0+bmV4dCwgbisrKQogICAgIHsKZGlmZiAtLWdpdCBhL2djYy9m b3J0cmFuL3RyYW5zLWlvLmMgYi9nY2MvZm9ydHJhbi90cmFucy1pby5jCmlu ZGV4IGE5YWQ0YTYuLjA4ZDY4MzEgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFu L3RyYW5zLWlvLmMKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtaW8uYwpAQCAt MTQ1MCw3ICsxNDUwLDcgQEAgbm1sX2Z1bGxfbmFtZSAoY29uc3QgY2hhciog dmFyX25hbWUsIGNvbnN0IGNoYXIqIGNtcF9uYW1lKQogICBjaGFyICogZnVs bF9uYW1lOwogCiAgIGZ1bGxfbmFtZV9sZW5ndGggPSBzdHJsZW4gKHZhcl9u YW1lKSArIHN0cmxlbiAoY21wX25hbWUpICsgMTsKLSAgZnVsbF9uYW1lID0g KGNoYXIqKWdmY19nZXRtZW0gKGZ1bGxfbmFtZV9sZW5ndGggKyAxKTsKKyAg ZnVsbF9uYW1lID0gKGNoYXIqKSB4Y2FsbG9jIChmdWxsX25hbWVfbGVuZ3Ro ICsgMSwgMSk7CiAgIHN0cmNweSAoZnVsbF9uYW1lLCB2YXJfbmFtZSk7CiAg IGZ1bGxfbmFtZSA9IHN0cmNhdCAoZnVsbF9uYW1lLCAiJSIpOwogICBmdWxs X25hbWUgPSBzdHJjYXQgKGZ1bGxfbmFtZSwgY21wX25hbWUpOwpkaWZmIC0t Z2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5jIGIvZ2NjL2ZvcnRyYW4v dHJhbnMtc3RtdC5jCmluZGV4IDdkNzJiN2UuLjlmOTU4Y2IgMTAwNjQ0Ci0t LSBhL2djYy9mb3J0cmFuL3RyYW5zLXN0bXQuYworKysgYi9nY2MvZm9ydHJh bi90cmFucy1zdG10LmMKQEAgLTM0NTUsMTUgKzM0NTUsMTUgQEAgZ2ZjX3Ry YW5zX2ZvcmFsbF8xIChnZmNfY29kZSAqIGNvZGUsIGZvcmFsbF9pbmZvICog bmVzdGVkX2ZvcmFsbF9pbmZvKQogICBudmFyID0gbjsKIAogICAvKiBBbGxv Y2F0ZSB0aGUgc3BhY2UgZm9yIHZhciwgc3RhcnQsIGVuZCwgc3RlcCwgdmFy ZXhwci4gICovCi0gIHZhciA9ICh0cmVlICopIGdmY19nZXRtZW0gKG52YXIg KiBzaXplb2YgKHRyZWUpKTsKLSAgc3RhcnQgPSAodHJlZSAqKSBnZmNfZ2V0 bWVtIChudmFyICogc2l6ZW9mICh0cmVlKSk7Ci0gIGVuZCA9ICh0cmVlICop IGdmY19nZXRtZW0gKG52YXIgKiBzaXplb2YgKHRyZWUpKTsKLSAgc3RlcCA9 ICh0cmVlICopIGdmY19nZXRtZW0gKG52YXIgKiBzaXplb2YgKHRyZWUpKTsK LSAgdmFyZXhwciA9IChnZmNfZXhwciAqKikgZ2ZjX2dldG1lbSAobnZhciAq IHNpemVvZiAoZ2ZjX2V4cHIgKikpOwotICBzYXZlZF92YXJzID0gKGdmY19z YXZlZF92YXIgKikgZ2ZjX2dldG1lbSAobnZhciAqIHNpemVvZiAoZ2ZjX3Nh dmVkX3ZhcikpOworICB2YXIgPSAodHJlZSAqKSB4Y2FsbG9jIChudmFyLCBz aXplb2YgKHRyZWUpKTsKKyAgc3RhcnQgPSAodHJlZSAqKSB4Y2FsbG9jIChu dmFyLCBzaXplb2YgKHRyZWUpKTsKKyAgZW5kID0gKHRyZWUgKikgeGNhbGxv YyAobnZhciwgc2l6ZW9mICh0cmVlKSk7CisgIHN0ZXAgPSAodHJlZSAqKSB4 Y2FsbG9jIChudmFyLCBzaXplb2YgKHRyZWUpKTsKKyAgdmFyZXhwciA9IChn ZmNfZXhwciAqKikgeGNhbGxvYyAobnZhciwgc2l6ZW9mIChnZmNfZXhwciAq KSk7CisgIHNhdmVkX3ZhcnMgPSAoZ2ZjX3NhdmVkX3ZhciAqKSB4Y2FsbG9j IChudmFyLCBzaXplb2YgKGdmY19zYXZlZF92YXIpKTsKIAogICAvKiBBbGxv Y2F0ZSB0aGUgc3BhY2UgZm9yIGluZm8uICAqLwotICBpbmZvID0gKGZvcmFs bF9pbmZvICopIGdmY19nZXRtZW0gKHNpemVvZiAoZm9yYWxsX2luZm8pKTsK KyAgaW5mbyA9IChmb3JhbGxfaW5mbyAqKSB4Y2FsbG9jICgxLCBzaXplb2Yg KGZvcmFsbF9pbmZvKSk7CiAKICAgZ2ZjX3N0YXJ0X2Jsb2NrICgmcHJlKTsK ICAgZ2ZjX2luaXRfYmxvY2sgKCZwb3N0KTsKQEAgLTM0NzUsNyArMzQ3NSw3 IEBAIGdmY190cmFuc19mb3JhbGxfMSAoZ2ZjX2NvZGUgKiBjb2RlLCBmb3Jh bGxfaW5mbyAqIG5lc3RlZF9mb3JhbGxfaW5mbykKICAgICAgIGdmY19zeW1i b2wgKnN5bSA9IGZhLT52YXItPnN5bXRyZWUtPm4uc3ltOwogCiAgICAgICAv KiBBbGxvY2F0ZSBzcGFjZSBmb3IgdGhpc19mb3JhbGwuICAqLwotICAgICAg dGhpc19mb3JhbGwgPSAoaXRlcl9pbmZvICopIGdmY19nZXRtZW0gKHNpemVv ZiAoaXRlcl9pbmZvKSk7CisgICAgICB0aGlzX2ZvcmFsbCA9IChpdGVyX2lu Zm8gKikgeGNhbGxvYyAoMSwgc2l6ZW9mIChpdGVyX2luZm8pKTsKIAogICAg ICAgLyogQ3JlYXRlIGEgdGVtcG9yYXJ5IHZhcmlhYmxlIGZvciB0aGUgRk9S QUxMIGluZGV4LiAgKi8KICAgICAgIHRtcCA9IGdmY190eXBlbm9kZV9mb3Jf c3BlYyAoJnN5bS0+dHMpOwo= --bcaec5215635c993de04a1376afe--