msvc: Fix some compiler warnings

In particular, the compiler issues the following warnings:

    src/revobject.c(29) : warning C4305: 'initializing' : truncation \
        from 'double' to 'const float'
    src/revobject.c(56) : warning C4244: '=' : conversion from \
        'const float' to 'unsigned int', possible loss of data
    src/revobject.c(149) : warning C4244: '=' : conversion from \
        'const float' to 'unsigned int', possible loss of data

In order to suppress the warnings we change the type of max_load_factor
to double, rather than change the initialiser to 0.65f, and cast the
result type of the expressions to 'unsigned int' as expected by the
assignment operators. Note that double should be able to represent all
unsigned int values without loss.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Andreas Ericsson <ae@op5.se>
This commit is contained in:
Ramsay Jones 2010-06-01 19:29:15 +01:00 committed by Andreas Ericsson
parent 8a7d625f53
commit 5440906feb

View File

@ -26,7 +26,7 @@
#include "common.h"
#include "revobject.h"
const float max_load_factor = 0.65;
const double max_load_factor = 0.65;
unsigned int git_revpool_table__hash(const git_oid *id)
{
@ -53,7 +53,7 @@ git_revpool_table *git_revpool_table_create(unsigned int min_size)
table->size_mask = min_size;
table->count = 0;
table->max_count = (min_size + 1) * max_load_factor;
table->max_count = (unsigned int)((min_size + 1) * max_load_factor);
table->nodes = git__malloc((min_size + 1) * sizeof(git_revpool_node *));
@ -146,7 +146,7 @@ void git_revpool_table_resize(git_revpool_table *table)
free(table->nodes);
table->nodes = new_nodes;
table->size_mask = (new_size - 1);
table->max_count = new_size * max_load_factor;
table->max_count = (unsigned int)(new_size * max_load_factor);
}