[
https://issues.apache.org/jira/browse/THRIFT-4940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jens Geyer resolved THRIFT-4940.
--------------------------------
Resolution: Not A Problem
GetFullPathName() will set the values on success and the caller is advised to
not use the values on error return. This is a common Windows API pattern, I
don't think adding any initialisation code will improve anything. Thou shalt
not use invalid data, period.
Only "maybe" point of discussion here is the basename argument, as this one is
documented as "can be NULL" and it is not used anyway. OTOHJ, never change a
running system unless you have a good reason ...
> value should inialization when defined
> --------------------------------------
>
> Key: THRIFT-4940
> URL: https://issues.apache.org/jira/browse/THRIFT-4940
> Project: Thrift
> Issue Type: Improvement
> Components: Compiler (General)
> Affects Versions: 0.13.0
> Environment: win7, visual studio 2015, thrift-master
> Reporter: pengzhouhu
> Priority: Trivial
> Fix For: 0.13.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> i debug the compiler in compiler\cpp\src\thrift\generate\main.cc line 169,
> values should inialization before beused. a little improvement i suggest.
> {code:c++}
> /**
> * Win32 doesn't have realpath, so use fallback implementation in that case,
> * otherwise this just calls through to realpath
> */
> char* saferealpath(const char* path, char* resolved_path) {
> #ifdef _WIN32
> char buf[MAX_PATH];
> char* basename;
> DWORD len = GetFullPathNameA(path, MAX_PATH, buf, &basename);
> if (len == 0 || len > MAX_PATH - 1) {
> strcpy(resolved_path, path);
> } else {
> strcpy(resolved_path, buf);
> }
> // Replace backslashes with forward slashes so the
> // rest of the code behaves correctly.
> size_t resolved_len = strlen(resolved_path);
> for (size_t i = 0; i < resolved_len; i++) {
> if (resolved_path[i] == '\\') {
> resolved_path[i] = '/';
> }
> }
> return resolved_path;
> #else
> return realpath(path, resolved_path);
> #endif
> }
> {code}
> thanks.
> zhouhu.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)