1 //===-- Expression.h ---------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "lldb/Expression/Expression.h" 11 #include "lldb/Target/ExecutionContextScope.h" 12 #include "lldb/Target/Target.h" 13 14 using namespace lldb_private; 15 16 Expression::Expression(Target &target) 17 : m_target_wp(target.shared_from_this()), 18 m_jit_start_addr(LLDB_INVALID_ADDRESS), 19 m_jit_end_addr(LLDB_INVALID_ADDRESS) { 20 // Can't make any kind of expression without a target. 21 assert(m_target_wp.lock()); 22 } 23 24 Expression::Expression(ExecutionContextScope &exe_scope) 25 : m_target_wp(exe_scope.CalculateTarget()), 26 m_jit_start_addr(LLDB_INVALID_ADDRESS), 27 m_jit_end_addr(LLDB_INVALID_ADDRESS) { 28 assert(m_target_wp.lock()); 29 } 30