[Lldb-commits] [PATCH] D31089: Remove FileSystem::GetFilePermissions and FileSystem::SetFilePermissions
Zachary Turner via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Mar 17 12:52:00 PDT 2017
zturner added inline comments.
================
Comment at: lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp:813
+ auto perms =
+ static_cast<llvm::sys::fs::perms>(packet.GetHexMaxU32(false, UINT32_MAX));
if (packet.GetChar() == ',') {
----------------
zturner wrote:
> labath wrote:
> > This doesn't seem right. At the very least I would expect to see a matching change in the client code (I assume llvm constants don't match whatever we have used here (?)).
> >
> > We don't care much about protocol compatibility, but the apple guys might. If that is the case then we will need some encode/decode functions here.
> AFAICT both LLVM's enumeration and LLDB's enumeration map directly to the unix file permissions bits.
Here is the implementation of `setPermissions` in LLVM:
```
std::error_code setPermissions(const Twine &Path, perms Permissions) {
SmallString<128> PathStorage;
StringRef P = Path.toNullTerminatedStringRef(PathStorage);
if (::chmod(P.begin(), Permissions))
return std::error_code(errno, std::generic_category());
return std::error_code();
}
```
So it's literally the same as LLDB's implementation which I've deleted, which was:
```
Error FileSystem::SetFilePermissions(const FileSpec &file_spec,
uint32_t file_permissions) {
Error error;
if (::chmod(file_spec.GetCString(), file_permissions) != 0)
error.SetErrorToErrno();
return error;
}
```
https://reviews.llvm.org/D31089
More information about the lldb-commits
mailing list