summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorkirthika <kirthika@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-07-19 21:49:14 +0000
committerkirthika <kirthika@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-07-19 21:49:14 +0000
commitf41d67acb822c6f9a5740729c3cf71bf163f7df7 (patch)
tree69a1ac60991434d8754e3775c50d0a390a105a91 /ace
parent536ec258d9ec8e0bafb491db3a08778bd9f7c170 (diff)
downloadATCD-f41d67acb822c6f9a5740729c3cf71bf163f7df7.tar.gz
Changed calculationof <entries_to_remove> to be 1 or exact value
Diffstat (limited to 'ace')
-rw-r--r--ace/Caching_Utility_T.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/ace/Caching_Utility_T.cpp b/ace/Caching_Utility_T.cpp
index c0090253b33..285f2af8660 100644
--- a/ace/Caching_Utility_T.cpp
+++ b/ace/Caching_Utility_T.cpp
@@ -54,8 +54,10 @@ 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 = size_t ((double (purge_percent) / 100 * current_map_size) + 0.5);
-
+ size_t entries_to_remove
+ = ACE_MAX (1, ACE_static_cast(size_t,
+ ACE_static_cast(double, purge_percent)
+ / 100 * current_map_size));
KEY *key_to_remove = 0;
VALUE *value_to_remove = 0;
@@ -152,7 +154,10 @@ 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 = size_t ((double (purge_percent) / 100 * current_map_size) + 0.5);
+ size_t entries_to_remove
+ = ACE_MAX (1, ACE_static_cast(ssize_t,
+ ACE_static_cast(double, purge_percent)
+ / 100 * current_map_size));
KEY *key_to_remove = 0;
VALUE *value_to_remove = 0;
@@ -268,7 +273,10 @@ 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 = size_t ((double (purge_percent) / 100 * available_entries) + 0.5);
+ size_t entries_to_remove
+ = ACE_MAX (1, ACE_static_cast(ssize_t,
+ ACE_static_cast(double, purge_percent)
+ / 100 * current_map_size));
if (entries_to_remove >= available_entries ||
entries_to_remove == 0)
@@ -389,7 +397,10 @@ 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 = (purge_percent / 100 * current_map_size) + 0.5;
+ size_t entries_to_remove
+ = ACE_MAX (1, ACE_static_cast(ssize_t,
+ ACE_static_cast(double, purge_percent)
+ / 100 * current_map_size));
KEY *key_to_remove = 0;
VALUE *value_to_remove = 0;