> On Jul 21, 2017, at 4:41 PM, Sean Callanan via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > > There's a function in OptionValueProperties > (http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/OptionValueProperties.cpp?view=markup > line 234): > > const Property *OptionValueProperties::GetPropertyAtIndex( > const ExecutionContext *exe_ctx, bool will_modify, uint32_t idx) const { > return ProtectedGetPropertyAtIndex(idx); > } > > Its callers go to some trouble to collect and pass around the > ExecutionContext (e.g., GetSubValue passes it around everywhere, > GetPropertyAtrIndexAs* has to keep it everywhere, the Dump mechanism passes > around ExecutionContexts, etc.) > > Aside from calling this function with completely ignores the > ExecutionContext, I don't see the execution contexts getting used anywhere. > Is this a remnant from old code?
For instance (from Process.cpp): class ProcessOptionValueProperties : public OptionValueProperties { public: ProcessOptionValueProperties(const ConstString &name) : OptionValueProperties(name) {} // This constructor is used when creating ProcessOptionValueProperties when it // is part of a new lldb_private::Process instance. It will copy all current // global property values as needed ProcessOptionValueProperties(ProcessProperties *global_properties) : OptionValueProperties(*global_properties->GetValueProperties()) {} const Property *GetPropertyAtIndex(const ExecutionContext *exe_ctx, bool will_modify, uint32_t idx) const override { // When getting the value for a key from the process options, we will always // try and grab the setting from the current process if there is one. Else // we just // use the one from this instance. if (exe_ctx) { Process *process = exe_ctx->GetProcessPtr(); if (process) { ProcessOptionValueProperties *instance_properties = static_cast<ProcessOptionValueProperties *>( process->GetValueProperties().get()); if (this != instance_properties) return instance_properties->ProtectedGetPropertyAtIndex(idx); } } return ProtectedGetPropertyAtIndex(idx); } }; That's what tells you whether to use the global process property, or this process specific one. Ditto for Thread properties. Jim > > Sean > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev