[
https://issues.apache.org/jira/browse/THRIFT-4940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
pengzhouhu updated THRIFT-4940:
-------------------------------
Description:
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.
was:
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.
> value should inialization when defined
> --------------------------------------
>
> Key: THRIFT-4940
> URL: https://issues.apache.org/jira/browse/THRIFT-4940
> Project: Thrift
> Issue Type: Improvement
> Affects Versions: 0.13.0
> Environment: win7, visual studio 2015, thrift-master
> Reporter: pengzhouhu
> Priority: Major
> 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)