From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: zhichao.gao@intel.com) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by groups.io with SMTP; Thu, 11 Jul 2019 19:31:35 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Jul 2019 19:31:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,480,1557212400"; d="scan'208";a="160259295" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga008.jf.intel.com with ESMTP; 11 Jul 2019 19:31:34 -0700 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 11 Jul 2019 19:31:33 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 11 Jul 2019 19:31:33 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.134]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.109]) with mapi id 14.03.0439.000; Fri, 12 Jul 2019 10:31:32 +0800 From: "Gao, Zhichao" To: "devel@edk2.groups.io" , "lersek@redhat.com" CC: "Gao, Liming" , =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , "Kinney, Michael D" , =?utf-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= Subject: Re: [edk2-devel] [PATCH 2/3] MdePkg/BaseLib: rewrite Base64Decode() Thread-Topic: [edk2-devel] [PATCH 2/3] MdePkg/BaseLib: rewrite Base64Decode() Thread-Index: AQHVMMEASIXfgvt6606SOVbNX18mJabGR2nw Date: Fri, 12 Jul 2019 02:31:31 +0000 Message-ID: <3CE959C139B4C44DBEA1810E3AA6F9000B80750F@SHSMSX101.ccr.corp.intel.com> References: <20190702102836.27589-1-lersek@redhat.com> <20190702102836.27589-3-lersek@redhat.com> In-Reply-To: <20190702102836.27589-3-lersek@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: zhichao.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U29ycnkgZm9yIGxhdGUgcmVzcG9uZC4NClRoZSB3aG9sZSBjb2RlIGlzIE9LIGZvciBtZS4gQW5k IEkgd3JpdGUgYSB0aW55IHRlc3QgZm9yIGl0IHdpdGhvdXQgdGhlIG1lbW9yeSBhZGRyZXNzIGNo ZWNrLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1poaWNoYW9HYW8vZWRrMi9jb21taXQvNjE1MzU2 YmEzMmQzMTQ3OTU3ZDIxNWRlYmQ4NDRlNzcwOWYwNjg0OSAuIEl0IGlzIHRlc3RlZCBpbiBFbXVs YXRvciBlbnZpcm9ubWVudC4gSWYgaXQgaXMgT0ssIEkgdGhpbmsgeW91IGNhbiB0YWtlIG15IFRl c3RlZC1ieSBmb3IgdGhpcyBwYXRjaC4gSWYgdGhlcmUgYXJlIHNvbWUgbWlzc2luZywgcGxlYXNl IGxldCBtZSBrbm93Lg0KDQpCYXNlNjREZWNvZGUgcGFyYW1ldGVyIFNvdXJjZSBpcyBpbmRpY2F0 ZSBhcyBPUFRJT05BTC4gQWx0aG91Z2ggaXQgaXMgT0sgdG8gYmUgTlVMTCwgYW5kIHJldHVybiBE ZXN0aW5hdGlvblNpemUgdG8gYmUgemVybyB3aXRoIHN1Y2Nlc3Mgc3RhdHVzIHRvIGluZGljYXRl IG5vIGRlY29kZSBvY2N1cnJlZCAuIEkgZG9uJ3Qga25vdyBpZiBpdCBpcyBtZWFuaW5nZnVsIHRv IHJlcG9ydCB0aGUgcmVzdWx0IGFzIHRoYXQuIEluIG15IG9waW5pb24sIE5VTEwgU291cmNlIGlz IGFuIGludmFsaWQgaW5wdXQuIEp1c3QgbXkgb3BpbmlvbiwgaWYgdGhlIG1haW50YWluZXIgaXMg T0sgd2l0aCB0aGF0LCBJIGFtIE9LIHRvby4NCg0KU29tZSBvdGhlciBtaW5vciBjb21tZW50IGFi b3V0IHRoZSBibG9jayBzY29wZSB2YXJpYWJsZSBibG93Lg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIFttYWlsdG86ZGV2ZWxAZWRr Mi5ncm91cHMuaW9dIE9uIEJlaGFsZiBPZg0KPiBMYXN6bG8gRXJzZWsNCj4gU2VudDogVHVlc2Rh eSwgSnVseSAyLCAyMDE5IDY6MjkgUE0NCj4gVG86IGVkazItZGV2ZWwtZ3JvdXBzLWlvIDxkZXZl bEBlZGsyLmdyb3Vwcy5pbz4NCj4gQ2M6IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNv bT47IE1hcnZpbiBIw6R1c2VyDQo+IDxtaGFldXNlckBvdXRsb29rLmRlPjsgS2lubmV5LCBNaWNo YWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gUGhpbGlwcGUgTWF0aGlldS1E YXVkw6kgPHBoaWxtZEByZWRoYXQuY29tPjsgR2FvLCBaaGljaGFvDQo+IDx6aGljaGFvLmdhb0Bp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8zXSBNZGVQa2cvQmFz ZUxpYjogcmV3cml0ZSBCYXNlNjREZWNvZGUoKQ0KPg0KPiBSZXdyaXRlIEJhc2U2NERlY29kZSgp IGZyb20gc2NyYXRjaCwgZHVlIHRvIHJlYXNvbnMgbGlzdGVkIGluIHRoZSBzZWNvbmQNCj4gcmVm ZXJlbmNlIGJlbG93Lg0KPg0KPiBJbXBsZW1lbnQgQmFzZTY0RGVjb2RlKCkgYWNjb3JkaW5nIHRv IHRoZSBzcGVjaWZpY2F0aW9uIGFkZGVkIGluIHRoZQ0KPiBwcmV2aW91cyBwYXRjaC4gVGhlIGRl Y29kZXIgc2NhbnMgdGhlIGlucHV0IGJ1ZmZlciBvbmNlLCBpdCBoYXMgbm8gaW5uZXINCj4gbG9v cChzKSwgYW5kIGl0IHNwaWxscyBlYWNoIG91dHB1dCBieXRlIGFzIHNvb24gYXMgdGhlIG91dHB1 dCBieXRlIGlzIGNvbXBsZXRlLg0KPg0KPiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRl bC5jb20+DQo+IENjOiBNYXJ2aW4gSMOkdXNlciA8bWhhZXVzZXJAb3V0bG9vay5kZT4NCj4gQ2M6 IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogUGhp bGlwcGUgTWF0aGlldS1EYXVkw6kgPHBoaWxtZEByZWRoYXQuY29tPg0KPiBDYzogWmhpY2hhbyBH YW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gUmVmOiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTENCj4gUmVmOiBodHRwOi8vbWlkLm1haWwtYXJj aGl2ZS5jb20vYzQ5NWJkMGItZWE0ZC03MjA2LThhNGYtDQo+IGE3MTQ5NzYwZDE5YUByZWRoYXQu Y29tDQo+IFNpZ25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ IC0tLQ0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TdHJpbmcuYyB8IDI0OSArKysrKysrKysr KysrKysrKysrLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDI0NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TdHJpbmcu Yw0KPiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvU3RyaW5nLmMgaW5kZXggZjgzOTcwMzVjMzJh Li42MTk4Y2NiYzk2NzINCj4gMTAwNjQ0DQo+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIv U3RyaW5nLmMNCj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TdHJpbmcuYw0KPiBAQCAt MTk3Myw4ICsxOTczLDI1MyBAQCBCYXNlNjREZWNvZGUgKA0KPiAgICBJTiBPVVQgVUlOVE4gICAg ICAgKkRlc3RpbmF0aW9uU2l6ZQ0KPiAgICApDQo+ICB7DQo+IC0gIEFTU0VSVCAoRkFMU0UpOw0K PiAtICByZXR1cm4gUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSOw0KPiArICBCT09MRUFOIFBhZGRp bmdNb2RlOw0KPiArICBVSU5UTiAgIFNpeEJpdEdyb3Vwc0NvbnN1bWVkOw0KPiArICBVSU5UMzIg IEFjY3VtdWxhdG9yOw0KPiArICBVSU5UTiAgIE9yaWdpbmFsRGVzdGluYXRpb25TaXplOw0KPiAr ICBVSU5UTiAgIFNvdXJjZUluZGV4Ow0KPiArDQo+ICsgIGlmIChEZXN0aW5hdGlvblNpemUgPT0g TlVMTCkgew0KPiArICAgIHJldHVybiBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVI7DQo+ICsgIH0N Cj4gKw0KPiArICAvLw0KPiArICAvLyBDaGVjayBTb3VyY2UgYXJyYXkgdmFsaWRpdHkuDQo+ICsg IC8vDQo+ICsgIGlmIChTb3VyY2UgPT0gTlVMTCkgew0KPiArICAgIGlmIChTb3VyY2VTaXplID4g MCkgew0KPiArICAgICAgLy8NCj4gKyAgICAgIC8vIEF0IGxlYXN0IG9uZSBDSEFSOCBlbGVtZW50 IGF0IE5VTEwgU291cmNlLg0KPiArICAgICAgLy8NCj4gKyAgICAgIHJldHVybiBSRVRVUk5fSU5W QUxJRF9QQVJBTUVURVI7DQo+ICsgICAgfQ0KPiArICB9IGVsc2UgaWYgKFNvdXJjZVNpemUgPiBN QVhfQUREUkVTUyAtIChVSU5UTilTb3VyY2UpIHsNCj4gKyAgICAvLw0KPiArICAgIC8vIE5vbi1O VUxMIFNvdXJjZSwgYnV0IGl0IHdyYXBzIGFyb3VuZC4NCj4gKyAgICAvLw0KPiArICAgIHJldHVy biBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVI7DQo+ICsgIH0NCj4gKw0KPiArICAvLw0KPiArICAv LyBDaGVjayBEZXN0aW5hdGlvbiBhcnJheSB2YWxpZGl0eS4NCj4gKyAgLy8NCj4gKyAgaWYgKERl c3RpbmF0aW9uID09IE5VTEwpIHsNCj4gKyAgICBpZiAoKkRlc3RpbmF0aW9uU2l6ZSA+IDApIHsN Cj4gKyAgICAgIC8vDQo+ICsgICAgICAvLyBBdCBsZWFzdCBvbmUgVUlOVDggZWxlbWVudCBhdCBO VUxMIERlc3RpbmF0aW9uLg0KPiArICAgICAgLy8NCj4gKyAgICAgIHJldHVybiBSRVRVUk5fSU5W QUxJRF9QQVJBTUVURVI7DQo+ICsgICAgfQ0KPiArICB9IGVsc2UgaWYgKCpEZXN0aW5hdGlvblNp emUgPiBNQVhfQUREUkVTUyAtIChVSU5UTilEZXN0aW5hdGlvbikgew0KPiArICAgIC8vDQo+ICsg ICAgLy8gTm9uLU5VTEwgRGVzdGluYXRpb24sIGJ1dCBpdCB3cmFwcyBhcm91bmQuDQo+ICsgICAg Ly8NCj4gKyAgICByZXR1cm4gUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSOw0KPiArICB9DQo+ICsN Cj4gKyAgLy8NCj4gKyAgLy8gQ2hlY2sgZm9yIG92ZXJsYXAuDQo+ICsgIC8vDQo+ICsgIGlmIChT b3VyY2UgIT0gTlVMTCAmJiBEZXN0aW5hdGlvbiAhPSBOVUxMKSB7DQo+ICsgICAgLy8NCj4gKyAg ICAvLyBCb3RoIGFycmF5cyBoYXZlIGJlZW4gcHJvdmlkZWQsIGFuZCB3ZSBrbm93IGZyb20gZWFy bGllciB0aGF0IGVhY2gNCj4gYXJyYXkNCj4gKyAgICAvLyBpcyB2YWxpZCBpbiBpdHNlbGYuDQo+ ICsgICAgLy8NCj4gKyAgICBpZiAoKFVJTlROKVNvdXJjZSArIFNvdXJjZVNpemUgPD0gKFVJTlRO KURlc3RpbmF0aW9uKSB7DQo+ICsgICAgICAvLw0KPiArICAgICAgLy8gU291cmNlIGFycmF5IHBy ZWNlZGVzIERlc3RpbmF0aW9uIGFycmF5LCBPSy4NCj4gKyAgICAgIC8vDQo+ICsgICAgfSBlbHNl IGlmICgoVUlOVE4pRGVzdGluYXRpb24gKyAqRGVzdGluYXRpb25TaXplIDw9IChVSU5UTilTb3Vy Y2UpIHsNCj4gKyAgICAgIC8vDQo+ICsgICAgICAvLyBEZXN0aW5hdGlvbiBhcnJheSBwcmVjZWRl cyBTb3VyY2UgYXJyYXksIE9LLg0KPiArICAgICAgLy8NCj4gKyAgICB9IGVsc2Ugew0KPiArICAg ICAgLy8NCj4gKyAgICAgIC8vIE92ZXJsYXAuDQo+ICsgICAgICAvLw0KPiArICAgICAgcmV0dXJu IFJFVFVSTl9JTlZBTElEX1BBUkFNRVRFUjsNCj4gKyAgICB9DQo+ICsgIH0NCj4gKw0KPiArICAv Lw0KPiArICAvLyBEZWNvZGluZyBsb29wIHNldHVwLg0KPiArICAvLw0KPiArICBQYWRkaW5nTW9k ZSAgICAgICAgICAgICA9IEZBTFNFOw0KPiArICBTaXhCaXRHcm91cHNDb25zdW1lZCAgICA9IDA7 DQo+ICsgIEFjY3VtdWxhdG9yICAgICAgICAgICAgID0gMDsNCj4gKyAgT3JpZ2luYWxEZXN0aW5h dGlvblNpemUgPSAqRGVzdGluYXRpb25TaXplOw0KPiArICAqRGVzdGluYXRpb25TaXplICAgICAg ICA9IDA7DQo+ICsNCj4gKyAgLy8NCj4gKyAgLy8gRGVjb2RpbmcgbG9vcC4NCj4gKyAgLy8NCj4g KyAgZm9yIChTb3VyY2VJbmRleCA9IDA7IFNvdXJjZUluZGV4IDwgU291cmNlU2l6ZTsgU291cmNl SW5kZXgrKykgew0KPiArICAgIENIQVI4ICBTb3VyY2VDaGFyOw0KPiArICAgIFVJTlQzMiBCYXNl NjRWYWx1ZTsNCj4gKyAgICBVSU5UOCAgRGVzdGluYXRpb25PY3RldDsNCg0KVGhlIGxvY2FsIHZh cmlhYmxlIGRlZmluZSBpbiBhIGJsb2NrIHNjb3BlLiBGb3IgQ1NTXzJfMSBTZWN0aW9uIDUuNC4x LjEgIkJsb2NrIChsb2NhbCkgU2NvcGUiLiBJdCBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZC4gTWF5 YmUgd2Ugc2hvdWxkIG1vdmUgdGhlbSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlvbi4N Cg0KVGhhbmtzLA0KWmhpY2hhbw0KDQo+ICsNCj4gKyAgICBTb3VyY2VDaGFyID0gU291cmNlW1Nv dXJjZUluZGV4XTsNCj4gKw0KPiArICAgIC8vDQo+ICsgICAgLy8gV2hpdGVzcGFjZSBpcyBpZ25v cmVkIGF0IGFsbCBwb3NpdGlvbnMgKHJlZ2FyZGxlc3Mgb2YgcGFkZGluZyBtb2RlKS4NCj4gKyAg ICAvLw0KPiArICAgIGlmIChTb3VyY2VDaGFyID09ICdcdCcgfHwgU291cmNlQ2hhciA9PSAnXG4n IHx8IFNvdXJjZUNoYXIgPT0gJ1x2JyB8fA0KPiArICAgICAgICBTb3VyY2VDaGFyID09ICdcZicg fHwgU291cmNlQ2hhciA9PSAnXHInIHx8IFNvdXJjZUNoYXIgPT0gJyAnKSB7DQo+ICsgICAgICBj b250aW51ZTsNCj4gKyAgICB9DQo+ICsNCg0K