summaryrefslogtreecommitdiff
path: root/ace/Caching_Utility_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Caching_Utility_T.cpp')
-rw-r--r--ace/Caching_Utility_T.cpp29
1 files changed, 7 insertions, 22 deletions
diff --git a/ace/Caching_Utility_T.cpp b/ace/Caching_Utility_T.cpp
index 0f4f98a18b2..c0090253b33 100644
--- a/ace/Caching_Utility_T.cpp
+++ b/ace/Caching_Utility_T.cpp
@@ -54,11 +54,8 @@ ACE_Pair_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_cac
// Calculate the no of entries to remove from the cache depending
// upon the <purge_percent>.
- size_t entries_to_remove
- = ACE_MAX (ACE_static_cast (size_t, 1),
- ACE_static_cast(size_t,
- ACE_static_cast(double, purge_percent)
- / 100 * current_map_size));
+ size_t entries_to_remove = size_t ((double (purge_percent) / 100 * current_map_size) + 0.5);
+
KEY *key_to_remove = 0;
VALUE *value_to_remove = 0;
@@ -155,12 +152,8 @@ ACE_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUT
// Calculate the no of entries to remove from the cache depending
// upon the <purge_percent>.
- size_t entries_to_remove
- = ACE_MAX (ACE_static_cast (size_t, 1),
- ACE_static_cast(size_t,
- ACE_static_cast(double, purge_percent)
- / 100 * current_map_size));
-
+ size_t entries_to_remove = size_t ((double (purge_percent) / 100 * current_map_size) + 0.5);
+
KEY *key_to_remove = 0;
VALUE *value_to_remove = 0;
@@ -275,11 +268,7 @@ ACE_Refcounted_Recyclable_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATO
// Calculate the no of entries to remove from the cache depending
// upon the <purge_percent>.
- size_t entries_to_remove
- = ACE_MAX (ACE_static_cast (size_t, 1),
- ACE_static_cast(size_t,
- ACE_static_cast(double, purge_percent)
- / 100 * available_entries));
+ size_t entries_to_remove = size_t ((double (purge_percent) / 100 * available_entries) + 0.5);
if (entries_to_remove >= available_entries ||
entries_to_remove == 0)
@@ -400,12 +389,8 @@ ACE_Handler_Caching_Utility<KEY, VALUE, CONTAINER, ITERATOR, ATTRIBUTES>::clear_
// Calculate the no of entries to remove from the cache depending
// upon the <purge_percent>.
- size_t entries_to_remove
- = ACE_MAX (ACE_static_cast (size_t, 1),
- ACE_static_cast(size_t,
- ACE_static_cast(double, purge_percent)
- / 100 * current_map_size));
-
+ size_t entries_to_remove = (purge_percent / 100 * current_map_size) + 0.5;
+
KEY *key_to_remove = 0;
VALUE *value_to_remove = 0;