Code fixes

Various code fixes, mostly discovered by MSVC code static analyzer .
std::bad_alloc throw?