diff --git a/src/fitting/_fitfun_cache.sl b/src/fitting/_fitfun_cache.sl index 318934c1a6218e1fd6449d6f8cbaedb0765cbdf7..5399d59451418dc12b5cc5db78f0426ec0ec47f2 100644 --- a/src/fitting/_fitfun_cache.sl +++ b/src/fitting/_fitfun_cache.sl @@ -184,17 +184,17 @@ define fitfun_get_cache() % return fresh structure if caching is disabled ifnot (fitfun_cache_enabled) { - return struct_copy(_fitfun_internal_cache[fitfun].init); + return remote ? NULL : struct_copy(_fitfun_internal_cache[fitfun].init); } % check the length of the cache-struct-array if (length(_fitfun_cache) < Isis_Active_Dataset) { % increase the array length - _fitfun_cache = [_fitfun_cache, - Struct_Type[Isis_Active_Dataset-length(_fitfun_cache)]]; - _fitfun_cache[Isis_Active_Dataset-1] = @Struct_Type(String_Type[0]); + loop (Isis_Active_Dataset-length(_fitfun_cache)) { + _fitfun_cache = [_fitfun_cache, @Struct_Type(String_Type[0])]; + } } - + % check the struct-field on existence ifnot (struct_field_exists(_fitfun_cache[Isis_Active_Dataset-1], fitfun)) { if (remote) { return NULL; } @@ -212,9 +212,10 @@ define fitfun_get_cache() % check the length of the internal number of bins if (length(_fitfun_internal_cache[fitfun].num_bins) < Isis_Active_Dataset) { - _fitfun_internal_cache[fitfun].num_bins = [_fitfun_internal_cache[fitfun].num_bins, - Integer_Type[Isis_Active_Dataset-length(_fitfun_internal_cache[fitfun].num_bins)]]; - _fitfun_internal_cache[fitfun].num_bins[Isis_Active_Dataset-1] = num_bins; + % increase the array length + loop (Isis_Active_Dataset-length(_fitfun_internal_cache[fitfun].num_bins)) { + _fitfun_internal_cache[fitfun].num_bins = [_fitfun_internal_cache[fitfun].num_bins, num_bins]; + } } % reset cache in case the number of bins of the current grid changed (eval_fun!!!)