@@ -341,10 +341,10 @@ static int32_t buckets_needed_to_cover_value(int64_t value, int32_t sub_bucket_c
341341/* ## ## ######## ## ## ####### ## ## ## */
342342
343343int hdr_calculate_bucket_config (
344- int64_t lowest_discernible_value ,
345- int64_t highest_trackable_value ,
346- int significant_figures ,
347- struct hdr_histogram_bucket_config * cfg )
344+ int64_t lowest_discernible_value ,
345+ int64_t highest_trackable_value ,
346+ int significant_figures ,
347+ struct hdr_histogram_bucket_config * cfg )
348348{
349349int32_t sub_bucket_count_magnitude ;
350350int64_t largest_value_with_single_unit_resolution ;
@@ -406,10 +406,10 @@ void hdr_init_preallocated(struct hdr_histogram* h, struct hdr_histogram_bucket_
406406}
407407
408408int hdr_init (
409- int64_t lowest_discernible_value ,
410- int64_t highest_trackable_value ,
411- int significant_figures ,
412- struct hdr_histogram * * result )
409+ int64_t lowest_discernible_value ,
410+ int64_t highest_trackable_value ,
411+ int significant_figures ,
412+ struct hdr_histogram * * result )
413413{
414414int64_t * counts ;
415415struct hdr_histogram_bucket_config cfg ;
@@ -492,13 +492,12 @@ bool hdr_record_values(struct hdr_histogram* h, int64_t value, int64_t count)
492492{
493493int32_t counts_index ;
494494
495- if (value < 0 )
495+ if (value < 0 || h -> highest_trackable_value < value )
496496 {
497497return false;
498498 }
499499
500500counts_index = counts_index_for (h , value );
501-
502501if (counts_index < 0 || h -> counts_len <= counts_index )
503502 {
504503return false;
@@ -514,7 +513,7 @@ bool hdr_record_values_atomic(struct hdr_histogram* h, int64_t value, int64_t co
514513{
515514int32_t counts_index ;
516515
517- if (value < 0 )
516+ if (value < 0 || h -> highest_trackable_value < value )
518517 {
519518return false;
520519 }
0 commit comments