labath added a comment.

After looking at this closer, I don't think we will even need a separate class 
to achieve deduplication. The code is so heavily duplicated (see comments on 
the first three non-boilerplate functions, I did not look at the rest yet, but 
I expect the situation to be the same) already that we can just push the 
definitions down the existing class hierarchy and achieve massive savings that 
way. After we're done with that, I think we'll find that the PlatformLinux 
class will be so small that your current s/linux/netbsd/ approach will no 
longer be a problem.

If @clayborg agrees with this approach, I can help you prepare the ground for 
that.



================
Comment at: source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp:200
 
 Error PlatformNetBSD::ResolveExecutable(
+    const ModuleSpec &ms, lldb::ModuleSP &exe_module_sp,
----------------
PlatformLinux, PlatformFreeBSD and PlatformWindows have copies of this code 
already. Proposal:
- put this code into `Platform::ResolveExecutable`
- remove other identical copies


================
Comment at: source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp:325
 
-// From PlatformMacOSX only
 Error PlatformNetBSD::GetFileWithUUID(const FileSpec &platform_file,
+                                     const UUID *uuid_ptr,
----------------
Every platform except `PlatformDarwin` already defines this function to the 
exact same code. Proposal:
- put this code into `Platform::GetFileWithUUID`
- remove other definitions with the same code


================
Comment at: source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp:354
 
 bool PlatformNetBSD::GetProcessInfo(lldb::pid_t pid,
+                                   ProcessInstanceInfo &process_info) {
----------------
Every platform already defines this function to the same code. Proposal:
- move this code into `Platform::GetProcessInfo`
- remove other (*all*) identical definitions


Repository:
  rL LLVM

https://reviews.llvm.org/D29266



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to