You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by fa...@apache.org on 2007/06/25 18:50:11 UTC

svn commit: r550545 - in /incubator/stdcxx/trunk/tests/localization: 22.locale.ctype.is.cpp 22.locale.ctype.narrow.cpp 22.locale.ctype.scan.cpp 22.locale.ctype.tolower.cpp 22.locale.ctype.toupper.cpp

Author: faridz
Date: Mon Jun 25 09:50:10 2007
New Revision: 550545

URL: http://svn.apache.org/viewvc?view=rev&rev=550545
Log:
2007-06-25 Farid Zaripov <Fa...@epam.com>

	* 22.locale.ctype.is.cpp: Check the pointer before dereferencing of it.
	* 22.locale.ctype.narrow.cpp: Ditto.
	* 22.locale.ctype.scan.cpp: Ditto.
	* 22.locale.ctype.tolower.cpp: Ditto.
	* 22.locale.ctype.toupper.cpp: Ditto.

Modified:
    incubator/stdcxx/trunk/tests/localization/22.locale.ctype.is.cpp
    incubator/stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp
    incubator/stdcxx/trunk/tests/localization/22.locale.ctype.scan.cpp
    incubator/stdcxx/trunk/tests/localization/22.locale.ctype.tolower.cpp
    incubator/stdcxx/trunk/tests/localization/22.locale.ctype.toupper.cpp

Modified: incubator/stdcxx/trunk/tests/localization/22.locale.ctype.is.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/localization/22.locale.ctype.is.cpp?view=diff&rev=550545&r1=550544&r2=550545
==============================================================================
--- incubator/stdcxx/trunk/tests/localization/22.locale.ctype.is.cpp (original)
+++ incubator/stdcxx/trunk/tests/localization/22.locale.ctype.is.cpp Mon Jun 25 09:50:10 2007
@@ -80,7 +80,7 @@
 
 #define BEGIN_LOCALE_LOOP(num, locname, loop_cntrl)                        \
    for (const char* locname = rw_locales (LC_CTYPE, 0);                    \
-        *locname; locname += std::strlen (locname) + 1) {                  \
+        locname && *locname; locname += std::strlen (locname) + 1) {       \
        _TRY {                                                              \
            const std::locale loc (locname);                                \
            const std::ctype<char> &ctc =                                   \

Modified: incubator/stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp?view=diff&rev=550545&r1=550544&r2=550545
==============================================================================
--- incubator/stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp (original)
+++ incubator/stdcxx/trunk/tests/localization/22.locale.ctype.narrow.cpp Mon Jun 25 09:50:10 2007
@@ -80,7 +80,7 @@
 
 #define BEGIN_LOCALE_LOOP(num, locname, loop_cntrl)                        \
    for (const char* locname = rw_locales (LC_CTYPE, 0);                    \
-        *locname; locname += std::strlen (locname) + 1) {                  \
+        locname && *locname; locname += std::strlen (locname) + 1) {       \
        _TRY {                                                              \
            const std::locale loc (locname);                                \
            const std::ctype<char> &ctc =                                   \

Modified: incubator/stdcxx/trunk/tests/localization/22.locale.ctype.scan.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/localization/22.locale.ctype.scan.cpp?view=diff&rev=550545&r1=550544&r2=550545
==============================================================================
--- incubator/stdcxx/trunk/tests/localization/22.locale.ctype.scan.cpp (original)
+++ incubator/stdcxx/trunk/tests/localization/22.locale.ctype.scan.cpp Mon Jun 25 09:50:10 2007
@@ -80,7 +80,7 @@
 
 #define BEGIN_LOCALE_LOOP(num, locname, loop_cntrl)                        \
    for (const char* locname = rw_locales (LC_CTYPE, 0);                    \
-        *locname; locname += std::strlen (locname) + 1) {                  \
+        locname && *locname; locname += std::strlen (locname) + 1) {       \
        _TRY {                                                              \
            const std::locale loc (locname);                                \
            const std::ctype<char> &ctc =                                   \

Modified: incubator/stdcxx/trunk/tests/localization/22.locale.ctype.tolower.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/localization/22.locale.ctype.tolower.cpp?view=diff&rev=550545&r1=550544&r2=550545
==============================================================================
--- incubator/stdcxx/trunk/tests/localization/22.locale.ctype.tolower.cpp (original)
+++ incubator/stdcxx/trunk/tests/localization/22.locale.ctype.tolower.cpp Mon Jun 25 09:50:10 2007
@@ -80,7 +80,7 @@
 
 #define BEGIN_LOCALE_LOOP(num, locname, loop_cntrl)                        \
    for (const char* locname = rw_locales (LC_CTYPE, 0);                    \
-        *locname; locname += std::strlen (locname) + 1) {                  \
+        locname && *locname; locname += std::strlen (locname) + 1) {       \
        _TRY {                                                              \
            const std::locale loc (locname);                                \
            const std::ctype<char> &ctc =                                   \

Modified: incubator/stdcxx/trunk/tests/localization/22.locale.ctype.toupper.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/localization/22.locale.ctype.toupper.cpp?view=diff&rev=550545&r1=550544&r2=550545
==============================================================================
--- incubator/stdcxx/trunk/tests/localization/22.locale.ctype.toupper.cpp (original)
+++ incubator/stdcxx/trunk/tests/localization/22.locale.ctype.toupper.cpp Mon Jun 25 09:50:10 2007
@@ -80,7 +80,7 @@
 
 #define BEGIN_LOCALE_LOOP(num, locname, loop_cntrl)                        \
    for (const char* locname = rw_locales (LC_CTYPE, 0);                    \
-        *locname; locname += std::strlen (locname) + 1) {                  \
+        locname && *locname; locname += std::strlen (locname) + 1) {       \
        _TRY {                                                              \
            const std::locale loc (locname);                                \
            const std::ctype<char> &ctc =                                   \



Re: svn commit: r550545 - in /incubator/stdcxx/trunk/tests/localization: 22.locale.ctype.is.cpp 22.locale.ctype.narrow.cpp 22.locale.ctype.scan.cpp 22.locale.ctype.tolower.cpp 22.locale.ctype.toupper.cpp

Posted by Martin Sebor <se...@roguewave.com>.
Farid Zaripov wrote:
>> -----Original Message-----
>> From: Martin Sebor [mailto:sebor@roguewave.com] 
>> Sent: Monday, June 25, 2007 9:38 PM
>> To: stdcxx-dev@incubator.apache.org
>> Subject: Re: svn commit: r550545 - in 
>> /incubator/stdcxx/trunk/tests/localization: 
>> 22.locale.ctype.is.cpp 22.locale.ctype.narrow.cpp 
>> 22.locale.ctype.scan.cpp 22.locale.ctype.tolower.cpp 
>> 22.locale.ctype.toupper.cpp
>>
>> faridz@apache.org wrote:
>>> Author: faridz
>>> Date: Mon Jun 25 09:50:10 2007
>>> New Revision: 550545
>> Thanks for taking care of this! IIRC, you made a similar 
>> change before, suggesting the rw_locales() API is 
>> error-prone. I wonder if we should change it so as to return 
>> "" instead of 0 on error.
>>
>> Incidentally, why does it fail in your environment?
> 
>   When I run the test only, the locale.exe utility not in the path
> and then the rw_locales() returns NULL. And later when the test
> iterating through the list I got access violation.
> 
>   I aggree to change rw_locales() to return something but not NULL.
> Perhaps rw_locales() should return "C"? I assume that "C" locale is
> always available, isn't it?

Yes, it is. That might make more sense than returning "".
Actually, it will need to be "C\0", i.e., there must be
two NULs at the end of the string.

Martin

RE: svn commit: r550545 - in /incubator/stdcxx/trunk/tests/localization: 22.locale.ctype.is.cpp 22.locale.ctype.narrow.cpp 22.locale.ctype.scan.cpp 22.locale.ctype.tolower.cpp 22.locale.ctype.toupper.cpp

Posted by Farid Zaripov <Fa...@epam.com>.
> -----Original Message-----
> From: Martin Sebor [mailto:sebor@roguewave.com] 
> Sent: Monday, June 25, 2007 9:38 PM
> To: stdcxx-dev@incubator.apache.org
> Subject: Re: svn commit: r550545 - in 
> /incubator/stdcxx/trunk/tests/localization: 
> 22.locale.ctype.is.cpp 22.locale.ctype.narrow.cpp 
> 22.locale.ctype.scan.cpp 22.locale.ctype.tolower.cpp 
> 22.locale.ctype.toupper.cpp
> 
> faridz@apache.org wrote:
> > Author: faridz
> > Date: Mon Jun 25 09:50:10 2007
> > New Revision: 550545
> 
> Thanks for taking care of this! IIRC, you made a similar 
> change before, suggesting the rw_locales() API is 
> error-prone. I wonder if we should change it so as to return 
> "" instead of 0 on error.
> 
> Incidentally, why does it fail in your environment?

  When I run the test only, the locale.exe utility not in the path
and then the rw_locales() returns NULL. And later when the test
iterating through the list I got access violation.

  I aggree to change rw_locales() to return something but not NULL.
Perhaps rw_locales() should return "C"? I assume that "C" locale is
always available, isn't it?

Farid.

Re: svn commit: r550545 - in /incubator/stdcxx/trunk/tests/localization: 22.locale.ctype.is.cpp 22.locale.ctype.narrow.cpp 22.locale.ctype.scan.cpp 22.locale.ctype.tolower.cpp 22.locale.ctype.toupper.cpp

Posted by Martin Sebor <se...@roguewave.com>.
faridz@apache.org wrote:
> Author: faridz
> Date: Mon Jun 25 09:50:10 2007
> New Revision: 550545

Thanks for taking care of this! IIRC, you made a similar change
before, suggesting the rw_locales() API is error-prone. I wonder
if we should change it so as to return "" instead of 0 on error.

Incidentally, why does it fail in your environment?

Martin