msvc compiler warning: signed-unsigned mismatch.
merge trunk