cheers. You should check it in yourself, or create a git pull request.

On 21/03/2016 19:00, David Madl wrote:
> I observed a bug that ScoreComponentCollection core entries would retain
> their score even after ZeroAll().  This may have affected the Moses
> implementation of MIRA.
>
> * std::valarray::resize(0) means "resize to 0" [1]
> * subsequent accesses using operator[] result in undefined behavior [2]
>
> FeatureVector::clear() is used by ScoreComponentCollection::ZeroAll(),
> which in turn was used in these places:
>
> ./contrib/mira/Main.cpp:665:      cumulativeWeights.ZeroAll();
> ./contrib/mira/Main.cpp:666:      cumulativeWeightsBinary.ZeroAll();
> ./moses/Incremental.cpp:580:  features.ZeroAll();
>
> It seems to me that the Moses implementation of MIRA may have been affected?
>
> [1] http://www.cplusplus.com/reference/valarray/valarray/resize/
> [2] http://www.cplusplus.com/reference/valarray/valarray/operator%5B%5D/
> ---
>   moses/FeatureVector.cpp | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/moses/FeatureVector.cpp b/moses/FeatureVector.cpp
> index 45a198c..f92bced 100644
> --- a/moses/FeatureVector.cpp
> +++ b/moses/FeatureVector.cpp
> @@ -175,7 +175,7 @@ void FVector::resize(size_t newsize)
>    void FVector::clear()
>   {
> -  m_coreFeatures.resize(0);
> +  m_coreFeatures.resize(m_coreFeatures.size(), 0);
>     m_features.clear();
>   }
>   -- 2.7.0
>
> _______________________________________________
> Moses-support mailing list
> [email protected]
> http://mailman.mit.edu/mailman/listinfo/moses-support
>

_______________________________________________
Moses-support mailing list
[email protected]
http://mailman.mit.edu/mailman/listinfo/moses-support

Reply via email to