diff --git a/include/zipr_mem_space.h b/include/zipr_mem_space.h index 8706d63eb6421702738f74ebafae535cd852c202..b2afae9d8a1ff237350e8e58bb840e77d708e6a0 100644 --- a/include/zipr_mem_space.h +++ b/include/zipr_mem_space.h @@ -43,6 +43,7 @@ class ZiprMemorySpace_t : public MemorySpace_t // range operatations void SplitFreeRange(RangeAddress_t addr); + void SplitFreeRange(Range_t split_from); void MergeFreeRange(RangeAddress_t addr); RangeSet_t::iterator FindFreeRange(RangeAddress_t addr); Range_t GetFreeRange(int size); diff --git a/src/memory_space.cpp b/src/memory_space.cpp index f8ed44678ffc455e2b24ac66417a44955f309514..79807e81e40c61851f75c56f72f2ac1bbc4f610c 100644 --- a/src/memory_space.cpp +++ b/src/memory_space.cpp @@ -36,6 +36,17 @@ ZiprOptionsNamespace_t *ZiprMemorySpace_t::RegisterOptions(ZiprOptionsNamespace_ return NULL; } +void ZiprMemorySpace_t::SplitFreeRange(Range_t split_from) +{ + RangeAddress_t counter, end; + for (counter = split_from.GetStart(), end = split_from.GetEnd(); + counter!=end; + counter++) + { + SplitFreeRange(counter); + } +} + void ZiprMemorySpace_t::SplitFreeRange(RangeAddress_t addr) { RangeSet_t::iterator it=FindFreeRange(addr);