labath accepted this revision.
labath added inline comments.
This revision is now accepted and ready to land.


================
Comment at: lldb/source/Commands/CommandObjectTarget.cpp:4059
       if (!module_spec.GetFileSpec() && !module_spec.GetPlatformFileSpec())
-          module_spec.GetFileSpec().GetFilename() = symbol_fspec.GetFilename();
+        module_spec.GetFileSpec() = symbol_fspec;
     }
----------------
amccarth wrote:
> labath wrote:
> > This does change behavior because previously the symbol file directory 
> > wasn't being copied. I think that was intentional because the comment on 
> > line 4112 says "match up the file by basename" (and it also makes sense 
> > because if you're adding symbols in an external file, then the main module 
> > file cannot be the exact same path as the symbol file).
> Oops.  Thanks for catching that.
> 
> ModuleSpec seems weird:  It exposes an internal members to be tweaked in 
> arbitrary ways.  I would have expected that it would have to react to certain 
> kinds of changes to keep itself consistent.  If it has no invariants to 
> enforce, it could have been a plain struct with a bunch of public member 
> variables.
This isn't really a matter of internal consistency. Both things make sense -- 
sometimes you want to match an actual full path, and sometimes only the 
basename.

That said, module spec does not have any internal consistency checks, and I 
don't think any are needed, so I think that replacing all the getters with 
public members would be a good idea.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70458/new/

https://reviews.llvm.org/D70458



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

Reply via email to