anchor.diff:    finally
       LAllowedRoles.Free;
     end;
  +end;
  +
  +procedure TMARSApplication.CleanupResourceMethodParameters(
  +  const AMethod: TRttiMethod; const AArguments: TArray<TValue>);
  +var
  +  LArgument: TValue;
  +  LParam: TRttiParameter;
  +  LParams: TArray<TRttiParameter>;
  +  LIndex: Integer;
  +  LCollect: Boolean;
  +begin
  +  LParams := AMethod.GetParameters;
  +  for LIndex := 0 to Length(LParams)-1 do
  +  begin
  +    LParam := LParams[LIndex];
  +    LArgument := AArguments[LIndex];
  +    LCollect := True;
  +    LParam.HasAttribute<ContextAttribute>(
  +      procedure (AAttr: ContextAttribute)
  +      begin
  +        LCollect := False;
  +      end
  +    );
  +    if LCollect then
  +      CollectGarbage(LArgument);
  +  end;
  +
   end;
   
   procedure TMARSApplication.CollectGarbage(const AValue: TValue);
  
positive.code:   end;
  end;
  
  procedure TMARSApplication.FillResourceMethodParameters(AInstance: TObject; AMethod: TRttiMethod; var AArgumentArray: TArgumentArray);
  var
    LParamArray: TArray<TRttiParameter>;
    LIndex: Integer;
  
negative.code:   ARequest: TWebRequest; AMediaType: TMediaType);
  var
    LMethodResult: TValue;
    LArgumentArray: TArray<TValue>;
    LMARSResponse: TMARSResponse;
    LStream: TBytesStream;
    LContentType: AnsiString;
    LCustomAtributeProcessor: TProc<CustomHeaderAttribute>;
  begin
    // The returned object MUST be initially nil (needs to be consistent with the Free method)
    LMethodResult := nil;
  