In ScopedBuffer, initialize the allocated memory bytes to 0 (#230) Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/ebfe9521 Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/ebfe9521 Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/ebfe9521
Branch: refs/heads/decimal-type Commit: ebfe9521f869543f058bb4c984fcd29511b9bd60 Parents: cd9db29 Author: Jianqiao Zhu <jianq...@cs.wisc.edu> Authored: Thu May 19 18:20:53 2016 -0500 Committer: Zuyu Zhang <zzh...@pivotal.io> Committed: Wed Jun 8 11:57:44 2016 -0700 ---------------------------------------------------------------------- utility/ScopedBuffer.hpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/ebfe9521/utility/ScopedBuffer.hpp ---------------------------------------------------------------------- diff --git a/utility/ScopedBuffer.hpp b/utility/ScopedBuffer.hpp index b6fddc5..03290ff 100644 --- a/utility/ScopedBuffer.hpp +++ b/utility/ScopedBuffer.hpp @@ -43,9 +43,13 @@ class ScopedBuffer { * size. * * @param alloc_size The number of bytes of memory to allocate. + * @param initialize If true, initialize all the bytes of the allocated memory to 0. **/ - explicit ScopedBuffer(const std::size_t alloc_size) { + explicit ScopedBuffer(const std::size_t alloc_size, bool initialize = true) { internal_ptr_ = std::malloc(alloc_size); + if (initialize) { + memset(internal_ptr_, 0x0, alloc_size); + } } /** @@ -54,10 +58,15 @@ class ScopedBuffer { * * @param alloc_size The number of bytes of memory to allocate. * @param alloc_alignment The alignment of the memory to allocate. + * @param initialize If true, initialize all the bytes of the allocated memory to 0. **/ ScopedBuffer(const std::size_t alloc_size, - const std::size_t alloc_alignment) { + const std::size_t alloc_alignment, + const bool initialize = true) { internal_ptr_ = malloc_with_alignment(alloc_size, alloc_alignment); + if (initialize) { + memset(internal_ptr_, 0x0, alloc_size); + } } /** @@ -110,12 +119,16 @@ class ScopedBuffer { * size. * * @param alloc_size The number of bytes of memory to allocate. + * @param initialize If true, initialize all the bytes of the allocated memory to 0. **/ - void reset(const std::size_t alloc_size) { + void reset(const std::size_t alloc_size, const bool initialize = true) { if (internal_ptr_ != nullptr) { std::free(internal_ptr_); } internal_ptr_ = std::malloc(alloc_size); + if (initialize) { + memset(internal_ptr_, 0x0, alloc_size); + } } /**