diff --git a/src/libnptm/Configuration.cpp b/src/libnptm/Configuration.cpp index ac5d7531bbf4a5205f600a3b2acec71fd4dcfa61..70e51d0749e53b6cbaba8147903f5cfd7b5794fc 100644 --- a/src/libnptm/Configuration.cpp +++ b/src/libnptm/Configuration.cpp @@ -297,9 +297,10 @@ ScattererConfiguration::ScattererConfiguration( exdc = ex; wp = w; xip = x; - if (variable_name == "XIV") scale_vec = scale_vector; - else { - scale_vec = new double[number_of_scales](); + scale_vec = new double[number_of_scales](); + if (variable_name == "XIV") { + for (int xi = 0; xi < nxi; xi++) scale_vec[xi] = scale_vector[xi]; + } else { const double pi2 = 2.0 * acos(-1.0); const double evc = 6.5821188e-16; for (int si = 0; si < number_of_scales; si++) { @@ -312,6 +313,7 @@ ScattererConfiguration::ScattererConfiguration( } } } + ScattererConfiguration::ScattererConfiguration(const ScattererConfiguration& rhs) { number_of_spheres = rhs.number_of_spheres; @@ -642,6 +644,7 @@ ScattererConfiguration* ScattererConfiguration::from_dedfb(string dedfb_file_nam _xip ); delete[] file_lines; + delete[] variable_vector; return config; }