From: Andreas Schneider Date: Thu, 6 Dec 2018 08:35:15 +0000 (+0100) Subject: librpc:ndr: Give the optimizer hints for ndr_push_bytes() X-Git-Tag: tdb-1.3.17~483 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7b60d72f67231e7675b0fad724edd59a0b3f4444;p=thirdparty%2Fsamba.git librpc:ndr: Give the optimizer hints for ndr_push_bytes() Also remove the redundant check in ndr_push_DATA_BLOB. Signed-off-by: Andreas Schneider Reviewed-by: Stefan Metzmacher Autobuild-User(master): Andreas Schneider Autobuild-Date(master): Fri Dec 7 15:33:38 CET 2018 on sn-devel-144 --- diff --git a/librpc/ndr/ndr_basic.c b/librpc/ndr/ndr_basic.c index b488c7c22d9..3a5189570c5 100644 --- a/librpc/ndr/ndr_basic.c +++ b/librpc/ndr/ndr_basic.c @@ -719,10 +719,10 @@ _PUBLIC_ enum ndr_err_code ndr_pull_trailer_align(struct ndr_pull *ndr, size_t s */ _PUBLIC_ enum ndr_err_code ndr_push_bytes(struct ndr_push *ndr, const uint8_t *data, uint32_t n) { - if (n == 0) { + if (unlikely(n == 0)) { return NDR_ERR_SUCCESS; } - if (data == NULL) { + if (unlikely(data == NULL)) { return NDR_ERR_INVALID_POINTER; } NDR_PUSH_NEED_BYTES(ndr, n); @@ -1335,10 +1335,6 @@ _PUBLIC_ enum ndr_err_code ndr_push_DATA_BLOB(struct ndr_push *ndr, int ndr_flag } else { NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, blob.length)); } - if (blob.length == 0) { - return NDR_ERR_SUCCESS; - } - NDR_CHECK(ndr_push_bytes(ndr, blob.data, blob.length)); return NDR_ERR_SUCCESS; }