[R-pkg-devel] spurious rchk warning
Patrick Perry
pperry at stern.nyu.edu
Tue Nov 21 15:46:19 CET 2017
I think you're right, and I think I've found the offending code
(https://github.com/patperry/r-utf8/blob/master/src/as_utf8.c#L111):
if (!raw || ce == CE_BYTES || ce == CE_NATIVE) {
if (!duped) {
PROTECT(ans = duplicate(ans)); nprot++;
duped = 1;
}
SET_STRING_ELT(ans, i,
mkCharLenCE((const char *)str,
size, CE_UTF8));
}
UNPROTECT(1); nprot--;
Thanks for the suggestion.
Patrick
> Joshua Ulrich <mailto:josh.m.ulrich at gmail.com>
> November 21, 2017 at 7:13 AM
> On Mon, Nov 20, 2017 at 8:34 PM, Patrick Perry<pperry at stern.nyu.edu> wrote:
>> One of my packages has what I believe to be spurious rchk warnings:
>>
>> From
>> https://raw.githubusercontent.com/kalibera/cran-checks/master/rchk/results/utf8.out
>>
>> Package utf8 version 1.1.0
>> Package built using 73757/R 3.5.0; x86_64-pc-linux-gnu; 2017-11-20 22:02:23
>> UTC; unix
>> Checked with rchk version 63f79d910f5835174fcaa5a0a7d2409348f7d2ac
>> More information at
>> https://github.com/kalibera/cran-checks/blob/master/rchk/PROTECT.md
>>
>> Function rutf8_as_utf8
>> [UP] unprotected variable ans while calling allocating function
>> R_CheckUserInterrupt utf8/src/as_utf8.c:68
>> [UP] unprotected variable ans while calling allocating function
>> rutf8_translate_utf8 utf8/src/as_utf8.c:83
>> [UP] unprotected variable ans while calling allocating function
>> Rf_mkCharLenCE utf8/src/as_utf8.c:117
>>
>> The offending function is at
>> https://github.com/patperry/r-utf8/blob/master/src/as_utf8.c#L46
>>
>> I tried to fix the warning in line 64 with
>>
>> PROTECT(ans = sx); nprot++;
>>
>> This did not work. Any suggestions?
>>
> My hypothesis is that your PROTECT and UNPROTECT calls inside the for
> loop are leaving 'ans' unprotected at some point. Consider using
> PROTECT_WITH_INDEX() and REPROTECT() instead.
>
>> Thanks,
>>
>>
>> Patrick
>>
>> ______________________________________________
>> R-package-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
>
>
> Patrick Perry <mailto:pperry at stern.nyu.edu>
> November 20, 2017 at 9:34 PM
> One of my packages has what I believe to be spurious rchk warnings:
>
> From
> https://raw.githubusercontent.com/kalibera/cran-checks/master/rchk/results/utf8.out
>
>
> Package utf8 version 1.1.0
> Package built using 73757/R 3.5.0; x86_64-pc-linux-gnu; 2017-11-20
> 22:02:23 UTC; unix
> Checked with rchk version 63f79d910f5835174fcaa5a0a7d2409348f7d2ac
> More information at
> https://github.com/kalibera/cran-checks/blob/master/rchk/PROTECT.md
>
> Function rutf8_as_utf8
> [UP] unprotected variable ans while calling allocating function
> R_CheckUserInterrupt utf8/src/as_utf8.c:68
> [UP] unprotected variable ans while calling allocating function
> rutf8_translate_utf8 utf8/src/as_utf8.c:83
> [UP] unprotected variable ans while calling allocating function
> Rf_mkCharLenCE utf8/src/as_utf8.c:117
>
> The offending function is at
> https://github.com/patperry/r-utf8/blob/master/src/as_utf8.c#L46
>
> I tried to fix the warning in line 64 with
>
> PROTECT(ans = sx); nprot++;
>
> This did not work. Any suggestions?
>
> Thanks,
>
>
> Patrick
>
>
[[alternative HTML version deleted]]
More information about the R-package-devel
mailing list