I think I understood both, Ibrar and Evan points. ( Sorry for my english :D )
Because if you want to wrap every OS dependent function then you need to wrap its return value to be independent. In that example maybe what we need is a convertion table between errno and GetLastError(). ( errno == 1 and GetLastError() == 1 has not the same meaning ) and this is not limited to the GetLastError() method :D On 21 Ott, 20:57, "Ibrar Ahmed" <[EMAIL PROTECTED]> wrote: > On Tue, Oct 21, 2008 at 9:29 PM, Evan Martin <[EMAIL PROTECTED]> wrote: > > > Ibrar, > > > What is the return value of that function? It has the "int" but its > > meaning ends up being platform-specific. I'd instead argue that there > > are two cases where GetLastError shows up: > > Actually I used GetLastError as an example. BTW return type is not the > issue here > > Windows GetLastError function has return type DWORD(32bit) but most > significant bits are not used so we can use int instead of DWORD > > http://msdn.microsoft.com/en-us/library/ms679360(VS.85).aspx > > Similarly errno is of type int in Linux. So at least this function > will work on Windows and Linux > > http://www.opengroup.org/onlinepubs/009695399/functions/errno.html > > > 1) Places where the code is checking for specific errors, in which > > case we'll need platform-specific tests as error codes vary; and > > Again I don't want to stick on one example here but these all checks > can be handle in platform::GetLastError function. > > > 2) Places where the code is checking for errors in general, in which > > case it may make sense to have a generic boolean-returning function > > (like "DidErrorOccur"), but even then I'd prefer the code to properly > > handle the error (and convert it to a more helpful string error > > message). > > I think you did't get my point here. Whenever you write a program > which is platform independent then these small function can cause > problem at end if these are not written platform independently. If > there is logic/design change then we can put OS macro around the code > but if we have small functions call and occurrence of calls are too > much then we should wrap these function. > > > > > On Tue, Oct 21, 2008 at 2:44 AM, Ibrar Ahmed <[EMAIL PROTECTED]> wrote: > > >> Hi All, > > >> While porting some module on Linux I feel that there are lot of > >> Windows specific call exists. IMHO we should at least wrap these > >> function with OS macros and bound further development to use that > >> functions. This will really reduce the porting effort on different > >> OS, because whenever you start porting a module you should wrap that > >> function first and then do actual function. This looks like a > >> mechanical work and totally waste of time. > > >> Here is the example what I want to state here. > > >> We are using GetLastError() function almost 100+ times. So it Should > >> looks like this > > >> Calling > >> ==== > >> platform::GetLastError(); > > >> Function > >> ===== > >> namespace platform (or any other name) > >> { > > >> int GetLastError() > >> { > >> #if defined(OS_WIN) > >> return GetLastError(); > >> #elif defined(OS_POSIX) > >> return errno; > >> #endif > >> } > > >> } > > >> Comments? > > >> -- > >> Ibrar Ahmed > >> EnterpriseDB http://www.enterprisedb.com > > -- > Ibrar Ahmed > EnterpriseDB http://www.enterprisedb.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Chromium-dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/chromium-dev?hl=en -~----------~----~----~----~------~----~------~--~---
