Code::Blocks Forums

Developer forums (C::B DEVELOPMENT STRICTLY!) => Development => Topic started by: ollydbg on October 08, 2009, 02:50:05 am

Title: Question about wx_str() and c_str()
Post by: ollydbg on October 08, 2009, 02:50:05 am
There are many code in the current trunk like below:

Code
            #if wxCHECK_VERSION(2, 9, 0)
                Manager::Get()->GetLogManager()->DebugLog(F(_T("Looking for type: '%s' (%d components)"), actual.wx_str(), type_components.size()));
            #else
                Manager::Get()->GetLogManager()->DebugLog(F(_T("Looking for type: '%s' (%d components)"), actual.c_str(), type_components.size()));
            #endif

After checking the wxWidgets header file(Windows)
D:\wxWidgets-2.8.10\include\wx\string.h

I find this statement:

Code
    const wxChar* wx_str()  const { return c_str(); }

So, I just manually change above code to below( remove the preprocessor  guard)
Code
                Manager::Get()->GetLogManager()->DebugLog(F(_T("Looking for type: '%s' (%d components)"), actual.wx_str(), type_components.size()));

It builds and works with no problem.

So, my question is: why not clean up these codes?
Thanks.



Title: Re: Question about wx_str() and c_str()
Post by: MortenMacFly on October 08, 2009, 07:09:38 am
Code
    const wxChar* wx_str()  const { return c_str(); }
This was added late to wxWidgets v2.8.10. If you remove the other option it'll break compilation of C::B on platforms where not the "latest" a.k.a v2.8.10 version of wxWidgets is available.

However, the cleanup will be done sooner or later...
Title: Re: Question about wx_str() and c_str()
Post by: ollydbg on October 08, 2009, 07:25:39 am
Code
    const wxChar* wx_str()  const { return c_str(); }
This was added late to wxWidgets v2.8.10. If you remove the other option it'll break compilation of C::B on platforms where not the "latest" a.k.a v2.8.10 version of wxWidgets is available.

However, the cleanup will be done sooner or later...

I see, thanks!!
Title: Re: Question about wx_str() and c_str()
Post by: stahta01 on October 08, 2009, 02:12:55 pm
Code
    const wxChar* wx_str()  const { return c_str(); }
This was added late to wxWidgets v2.8.10. If you remove the other option it'll break compilation of C::B on platforms where not the "latest" a.k.a v2.8.10 version of wxWidgets is available.

However, the cleanup will be done sooner or later...

I added the unneeded guard per an C::B dev request to get the patches applied.

The wx_str() has been in wxWidgets for years; but, it was obsoleted years ago.
Therefore, the was no wxWidgets docs saying it was safe to use.

From wxWidgets 2.8.0
Code
    // identical to c_str(), for wxWin 1.6x compatibility
    const wxChar* wx_str()  const { return c_str(); }

Tim S.


 
Title: Re: Question about wx_str() and c_str()
Post by: ollydbg on October 08, 2009, 02:25:11 pm
I added the unneeded guard per an C::B dev request to get the patches applied.
:D
Sorry, I can't understand, what does this sentence mean?
Title: Re: Question about wx_str() and c_str()
Post by: stahta01 on October 08, 2009, 02:51:41 pm
I added the unneeded guard per an C::B dev request to get the patches applied.
:D
Sorry, I can't understand, what does this sentence mean?

The Code::Blocks person said add the guard (#ifdef/else/endif) and he would apply the patch.
http://forums.codeblocks.org/index.php/topic,10510.msg72130.html#msg72130
http://forums.codeblocks.org/index.php/topic,10510.msg72132.html#msg72132

I added the patch that was NOT needed. He applied the patch.

Tim S.
Title: Re: Question about wx_str() and c_str()
Post by: ollydbg on October 08, 2009, 03:36:50 pm
I added the patch that was NOT needed. He applied the patch.
Tim S.

Ok,I know.