@@ -201,10 +201,13 @@ lldb::ValueObjectSP LookupIdentifier(llvm::StringRef name_ref,
201201}
202202
203203Interpreter::Interpreter (lldb::TargetSP target, llvm::StringRef expr,
204- lldb::DynamicValueType use_dynamic,
205- std::shared_ptr<StackFrame> frame_sp)
206- : m_target(std::move(target)), m_expr(expr), m_default_dynamic(use_dynamic),
207- m_exe_ctx_scope (frame_sp) {}
204+ std::shared_ptr<StackFrame> frame_sp,
205+ lldb::DynamicValueType use_dynamic, bool use_synthetic,
206+ bool fragile_ivar, bool check_ptr_vs_member)
207+ : m_target(std::move(target)), m_expr(expr), m_exe_ctx_scope(frame_sp),
208+ m_use_dynamic (use_dynamic), m_use_synthetic(use_synthetic),
209+ m_fragile_ivar(fragile_ivar), m_check_ptr_vs_member(check_ptr_vs_member) {
210+ }
208211
209212llvm::Expected<lldb::ValueObjectSP> Interpreter::Evaluate (const ASTNode *node) {
210213 // Evaluate an AST.
@@ -216,7 +219,7 @@ llvm::Expected<lldb::ValueObjectSP> Interpreter::Evaluate(const ASTNode *node) {
216219
217220llvm::Expected<lldb::ValueObjectSP>
218221Interpreter::Visit (const IdentifierNode *node) {
219- lldb::DynamicValueType use_dynamic = m_default_dynamic ;
222+ lldb::DynamicValueType use_dynamic = m_use_dynamic ;
220223
221224 lldb::ValueObjectSP identifier =
222225 LookupIdentifier (node->GetName (), m_exe_ctx_scope, use_dynamic);
@@ -245,7 +248,7 @@ Interpreter::Visit(const UnaryOpNode *node) {
245248
246249 switch (node->kind ()) {
247250 case UnaryOpKind::Deref: {
248- lldb::ValueObjectSP dynamic_rhs = rhs->GetDynamicValue (m_default_dynamic );
251+ lldb::ValueObjectSP dynamic_rhs = rhs->GetDynamicValue (m_use_dynamic );
249252 if (dynamic_rhs)
250253 rhs = dynamic_rhs;
251254
@@ -278,14 +281,10 @@ Interpreter::Visit(const MemberOfNode *node) {
278281 if (!base_or_err)
279282 return base_or_err;
280283 lldb::ValueObjectSP base = *base_or_err;
281- bool check_ptr_vs_member = node->GetCheckPtrVsMember ();
282- bool fragile_ivar = node->GetFragileIvar ();
283- bool synth_child = node->GetSynthChild ();
284- lldb::DynamicValueType use_dynamic = node->GetUseDynamic ();
285284
286285 // Perform some basic type & correctness checking.
287286 if (node->GetIsArrow ()) {
288- if (!fragile_ivar ) {
287+ if (!m_fragile_ivar ) {
289288 // Make sure we aren't trying to deref an objective
290289 // C ivar if this is not allowed
291290 const uint32_t pointer_type_flags =
@@ -323,7 +322,7 @@ Interpreter::Visit(const MemberOfNode *node) {
323322 }
324323 }
325324
326- if (check_ptr_vs_member ) {
325+ if (m_check_ptr_vs_member ) {
327326 bool expr_is_ptr = node->GetIsArrow ();
328327 bool base_is_ptr = base->IsPointerType ();
329328
@@ -349,13 +348,13 @@ Interpreter::Visit(const MemberOfNode *node) {
349348 lldb::ValueObjectSP field_obj =
350349 base->GetChildMemberWithName (node->GetFieldName ());
351350 if (!field_obj) {
352- if (synth_child ) {
351+ if (m_use_synthetic ) {
353352 field_obj = base->GetSyntheticValue ();
354353 if (field_obj)
355354 field_obj = field_obj->GetChildMemberWithName (node->GetFieldName ());
356355 }
357356
358- if (!synth_child || !field_obj) {
357+ if (!m_use_synthetic || !field_obj) {
359358 std::string errMsg = llvm::formatv (
360359 " no member named '{0}' in {1}" , node->GetFieldName (),
361360 base->GetCompilerType ().GetFullyUnqualifiedType ().TypeDescription ());
@@ -365,9 +364,9 @@ Interpreter::Visit(const MemberOfNode *node) {
365364 }
366365
367366 if (field_obj && field_obj->GetName () == node->GetFieldName ()) {
368- if (use_dynamic != lldb::eNoDynamicValues) {
367+ if (m_use_dynamic != lldb::eNoDynamicValues) {
369368 lldb::ValueObjectSP dynamic_val_sp =
370- field_obj->GetDynamicValue (use_dynamic );
369+ field_obj->GetDynamicValue (m_use_dynamic );
371370 if (dynamic_val_sp)
372371 field_obj = dynamic_val_sp;
373372 }
0 commit comments