diff options
author | Andreas Schneider <asn@samba.org> | 2018-12-06 09:35:15 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-12-07 15:33:38 +0100 |
commit | 7b60d72f67231e7675b0fad724edd59a0b3f4444 (patch) | |
tree | 661c1b07d008663ede1840d1b70bd3d951b55189 /librpc | |
parent | d5f9bc45e22d687c03d77afe9ada21ed79366df3 (diff) | |
download | samba-7b60d72f67231e7675b0fad724edd59a0b3f4444.tar.gz |
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 <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Fri Dec 7 15:33:38 CET 2018 on sn-devel-144
Diffstat (limited to 'librpc')
-rw-r--r-- | librpc/ndr/ndr_basic.c | 8 |
1 files changed, 2 insertions, 6 deletions
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; } |