Lines Matching refs:ValueObject
82 ValueObject::ValueObject(ValueObject &parent) in ValueObject() function in ValueObject
93 ValueObject::ValueObject(ExecutionContextScope *exe_scope, in ValueObject() function in ValueObject
111 ValueObject::~ValueObject() = default;
113 bool ValueObject::UpdateValueIfNeeded(bool update_format) { in UpdateValueIfNeeded()
204 bool ValueObject::UpdateFormatsIfNeeded() { in UpdateFormatsIfNeeded()
229 void ValueObject::SetNeedsUpdate() { in SetNeedsUpdate()
236 void ValueObject::ClearDynamicTypeInformation() { in ClearDynamicTypeInformation()
246 CompilerType ValueObject::MaybeCalculateCompleteType() { in MaybeCalculateCompleteType()
278 DataExtractor &ValueObject::GetDataExtractor() { in GetDataExtractor()
283 const Status &ValueObject::GetError() { in GetError()
288 const char *ValueObject::GetLocationAsCStringImpl(const Value &value, in GetLocationAsCStringImpl()
332 bool ValueObject::ResolveValue(Scalar &scalar) { in ResolveValue()
350 bool ValueObject::IsLogicalTrue(Status &error) { in IsLogicalTrue()
375 ValueObjectSP ValueObject::GetChildAtIndex(uint32_t idx, bool can_create) { in GetChildAtIndex()
388 ValueObject *child = m_children.GetChildAtIndex(idx); in GetChildAtIndex()
396 ValueObject::GetChildAtNamePath(llvm::ArrayRef<llvm::StringRef> names) { in GetChildAtNamePath()
409 size_t ValueObject::GetIndexOfChildWithName(llvm::StringRef name) { in GetIndexOfChildWithName()
415 ValueObjectSP ValueObject::GetChildMemberWithName(llvm::StringRef name, in GetChildMemberWithName()
443 llvm::Expected<uint32_t> ValueObject::GetNumChildren(uint32_t max) { in GetNumChildren()
464 uint32_t ValueObject::GetNumChildrenIgnoringErrors(uint32_t max) { in GetNumChildrenIgnoringErrors()
473 bool ValueObject::MightHaveChildren() { in MightHaveChildren()
486 void ValueObject::SetNumChildren(uint32_t num_children) { in SetNumChildren()
491 ValueObject *ValueObject::CreateChildAtIndex(size_t idx) { in CreateChildAtIndex()
526 ValueObject *ValueObject::CreateSyntheticArrayMember(size_t idx) { in CreateSyntheticArrayMember()
572 bool ValueObject::GetSummaryAsCString(TypeSummaryImpl *summary_ptr, in GetSummaryAsCString()
579 bool ValueObject::GetSummaryAsCString(TypeSummaryImpl *summary_ptr, in GetSummaryAsCString()
624 const char *ValueObject::GetSummaryAsCString(lldb::LanguageType lang) { in GetSummaryAsCString()
636 bool ValueObject::GetSummaryAsCString(std::string &destination, in GetSummaryAsCString()
641 bool ValueObject::IsCStringContainer(bool check_pointer) { in IsCStringContainer()
658 size_t ValueObject::GetPointeeData(DataExtractor &data, uint32_t item_idx, in GetPointeeData()
760 uint64_t ValueObject::GetData(DataExtractor &data, Status &error) { in GetData()
778 bool ValueObject::SetData(DataExtractor &data, Status &error) { in SetData()
855 ValueObject::ReadPointedString(lldb::WritableDataBufferSP &buffer_sp, in ReadPointedString()
992 llvm::Expected<std::string> ValueObject::GetObjectDescription() { in GetObjectDescription()
1034 bool ValueObject::GetValueAsCString(const lldb_private::TypeFormatImpl &format, in GetValueAsCString()
1042 bool ValueObject::GetValueAsCString(lldb::Format format, in GetValueAsCString()
1047 const char *ValueObject::GetValueAsCString() { in GetValueAsCString()
1088 uint64_t ValueObject::GetValueAsUnsigned(uint64_t fail_value, bool *success) { in GetValueAsUnsigned()
1106 int64_t ValueObject::GetValueAsSigned(int64_t fail_value, bool *success) { in GetValueAsSigned()
1124 llvm::Expected<llvm::APSInt> ValueObject::GetValueAsAPSInt() { in GetValueAsAPSInt()
1146 llvm::Expected<llvm::APFloat> ValueObject::GetValueAsAPFloat() { in GetValueAsAPFloat()
1162 llvm::Expected<bool> ValueObject::GetValueAsBool() { in GetValueAsBool()
1182 void ValueObject::SetValueFromInteger(const llvm::APInt &value, Status &error) { in SetValueFromInteger()
1218 void ValueObject::SetValueFromInteger(lldb::ValueObjectSP new_val_sp, in SetValueFromInteger()
1275 bool ValueObject::HasSpecialPrintableRepresentation( in HasSpecialPrintableRepresentation()
1279 val_obj_display == ValueObject::eValueObjectRepresentationStyleValue) { in HasSpecialPrintableRepresentation()
1308 bool ValueObject::DumpPrintableRepresentation( in DumpPrintableRepresentation()
1325 (special == ValueObject::PrintableRepresentationSpecialCases::eAllow); in DumpPrintableRepresentation()
1330 val_obj_display == ValueObject::eValueObjectRepresentationStyleValue) { in DumpPrintableRepresentation()
1385 s, ValueObject::eValueObjectRepresentationStyleValue, in DumpPrintableRepresentation()
1426 s, ValueObject::eValueObjectRepresentationStyleValue, format); in DumpPrintableRepresentation()
1565 addr_t ValueObject::GetAddressOf(bool scalar_is_load_address, in GetAddressOf()
1602 addr_t ValueObject::GetPointerValue(AddressType *address_type) { in GetPointerValue()
1631 bool ValueObject::SetValueFromCString(const char *value_str, Status &error) { in SetValueFromCString()
1716 bool ValueObject::GetDeclaration(Declaration &decl) { in GetDeclaration()
1721 void ValueObject::AddSyntheticChild(ConstString key, in AddSyntheticChild()
1722 ValueObject *valobj) { in AddSyntheticChild()
1726 ValueObjectSP ValueObject::GetSyntheticChild(ConstString key) const { in GetSyntheticChild()
1728 std::map<ConstString, ValueObject *>::const_iterator pos = in GetSyntheticChild()
1735 bool ValueObject::IsPossibleDynamicType() { in IsPossibleDynamicType()
1744 bool ValueObject::IsRuntimeSupportValue() { in IsRuntimeSupportValue()
1761 bool ValueObject::IsNilReference() { in IsNilReference()
1768 bool ValueObject::IsUninitializedReference() { in IsUninitializedReference()
1784 ValueObjectSP ValueObject::GetSyntheticArrayMember(size_t index, in GetSyntheticArrayMember()
1794 ValueObject *synthetic_child; in GetSyntheticArrayMember()
1811 ValueObjectSP ValueObject::GetSyntheticBitFieldChild(uint32_t from, uint32_t to, in GetSyntheticBitFieldChild()
1845 ValueObjectSP ValueObject::GetSyntheticChildAtOffset( in GetSyntheticChildAtOffset()
1882 ValueObjectSP ValueObject::GetSyntheticBase(uint32_t offset, in GetSyntheticBase()
1938 ValueObject::GetSyntheticExpressionPathChild(const char *expression, in GetSyntheticExpressionPathChild()
1966 void ValueObject::CalculateSyntheticValue() { in CalculateSyntheticValue()
1987 void ValueObject::CalculateDynamicValue(DynamicValueType use_dynamic) { in CalculateDynamicValue()
2001 ValueObjectSP ValueObject::GetDynamicValue(DynamicValueType use_dynamic) { in GetDynamicValue()
2014 ValueObjectSP ValueObject::GetSyntheticValue() { in GetSyntheticValue()
2023 bool ValueObject::HasSyntheticValue() { in HasSyntheticValue()
2034 ValueObject *ValueObject::GetNonBaseClassParent() { in GetNonBaseClassParent()
2044 bool ValueObject::IsBaseClass(uint32_t &depth) { in IsBaseClass()
2059 void ValueObject::GetExpressionPath(Stream &s, in GetExpressionPath()
2105 ValueObject *parent = GetParent(); in GetExpressionPath()
2119 ValueObject *non_base_class_parent = GetNonBaseClassParent(); in GetExpressionPath()
2154 ValueObjectSP ValueObject::GetValueForExpressionPath( in GetValueForExpressionPath()
2161 ValueObject::eExpressionPathScanEndReasonUnknown; in GetValueForExpressionPath()
2163 ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath()
2165 ValueObject::eExpressionPathAftermathNothing; in GetValueForExpressionPath()
2174 *final_task_on_target == ValueObject::eExpressionPathAftermathNothing) in GetValueForExpressionPath()
2184 ValueObject::eExpressionPathAftermathDereference) { in GetValueForExpressionPath()
2190 ValueObject::eExpressionPathScanEndReasonDereferencingFailed; in GetValueForExpressionPath()
2192 *final_value_type = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath()
2196 *final_task_on_target = ValueObject::eExpressionPathAftermathNothing; in GetValueForExpressionPath()
2201 ValueObject::eExpressionPathAftermathTakeAddress) { in GetValueForExpressionPath()
2207 ValueObject::eExpressionPathScanEndReasonTakingAddressFailed; in GetValueForExpressionPath()
2209 *final_value_type = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath()
2213 *final_task_on_target = ValueObject::eExpressionPathAftermathNothing; in GetValueForExpressionPath()
2222 ValueObjectSP ValueObject::GetValueForExpressionPath_Impl( in GetValueForExpressionPath_Impl()
2247 *reason_to_stop = ValueObject::eExpressionPathScanEndReasonEndOfString; in GetValueForExpressionPath_Impl()
2261 ValueObject::eExpressionPathScanEndReasonArrowInsteadOfDot; in GetValueForExpressionPath_Impl()
2262 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2271 ValueObject::eExpressionPathScanEndReasonFragileIVarNotAllowed; in GetValueForExpressionPath_Impl()
2272 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2277 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol; in GetValueForExpressionPath_Impl()
2278 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2293 ValueObject::eExpressionPathScanEndReasonDotInsteadOfArrow; in GetValueForExpressionPath_Impl()
2294 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2310 ValueObject::eExpressionPathScanEndReasonEndOfString; in GetValueForExpressionPath_Impl()
2311 *final_result = ValueObject::eExpressionPathEndResultTypePlain; in GetValueForExpressionPath_Impl()
2359 ValueObject::eExpressionPathScanEndReasonEndOfString; in GetValueForExpressionPath_Impl()
2360 *final_result = ValueObject::eExpressionPathEndResultTypePlain; in GetValueForExpressionPath_Impl()
2364 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2365 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2379 *final_result = ValueObject::eExpressionPathEndResultTypePlain; in GetValueForExpressionPath_Impl()
2428 *final_result = ValueObject::eExpressionPathEndResultTypePlain; in GetValueForExpressionPath_Impl()
2432 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2433 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2453 ValueObject::eExpressionPathScanEndReasonRangeOperatorInvalid; in GetValueForExpressionPath_Impl()
2454 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2462 ValueObject::eExpressionPathScanEndReasonRangeOperatorNotAllowed; in GetValueForExpressionPath_Impl()
2463 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2472 ValueObject::eExpressionPathScanEndReasonEmptyRangeNotAllowed; in GetValueForExpressionPath_Impl()
2473 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2479 ValueObject::eExpressionPathScanEndReasonArrayRangeOperatorMet; in GetValueForExpressionPath_Impl()
2481 ValueObject::eExpressionPathEndResultTypeUnboundedRange; in GetValueForExpressionPath_Impl()
2491 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol; in GetValueForExpressionPath_Impl()
2492 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2510 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol; in GetValueForExpressionPath_Impl()
2511 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2531 *final_result = ValueObject::eExpressionPathEndResultTypePlain; in GetValueForExpressionPath_Impl()
2535 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2536 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2541 ValueObject:: in GetValueForExpressionPath_Impl()
2556 ValueObject::eExpressionPathScanEndReasonDereferencingFailed; in GetValueForExpressionPath_Impl()
2557 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2579 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2580 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2585 *final_result = ValueObject::eExpressionPathEndResultTypePlain; in GetValueForExpressionPath_Impl()
2593 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2594 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2599 *reason_to_stop = ValueObject:: in GetValueForExpressionPath_Impl()
2601 *final_result = ValueObject::eExpressionPathEndResultTypeBitfield; in GetValueForExpressionPath_Impl()
2608 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2609 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2614 *final_result = ValueObject::eExpressionPathEndResultTypePlain; in GetValueForExpressionPath_Impl()
2627 ValueObject::eExpressionPathScanEndReasonSyntheticValueMissing; in GetValueForExpressionPath_Impl()
2628 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2636 ValueObject::eExpressionPathScanEndReasonSyntheticValueMissing; in GetValueForExpressionPath_Impl()
2637 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2643 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2644 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2649 *final_result = ValueObject::eExpressionPathEndResultTypePlain; in GetValueForExpressionPath_Impl()
2654 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2655 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2666 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol; in GetValueForExpressionPath_Impl()
2667 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2680 ValueObject::eExpressionPathScanEndReasonNoSuchChild; in GetValueForExpressionPath_Impl()
2681 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2684 *reason_to_stop = ValueObject:: in GetValueForExpressionPath_Impl()
2686 *final_result = ValueObject::eExpressionPathEndResultTypeBitfield; in GetValueForExpressionPath_Impl()
2695 ValueObject::eExpressionPathAftermathDereference && in GetValueForExpressionPath_Impl()
2701 ValueObject::eExpressionPathScanEndReasonDereferencingFailed; in GetValueForExpressionPath_Impl()
2702 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2705 *what_next = ValueObject::eExpressionPathAftermathNothing; in GetValueForExpressionPath_Impl()
2710 ValueObject::eExpressionPathScanEndReasonArrayRangeOperatorMet; in GetValueForExpressionPath_Impl()
2711 *final_result = ValueObject::eExpressionPathEndResultTypeBoundedRange; in GetValueForExpressionPath_Impl()
2720 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol; in GetValueForExpressionPath_Impl()
2721 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid; in GetValueForExpressionPath_Impl()
2728 llvm::Error ValueObject::Dump(Stream &s) { in Dump()
2732 llvm::Error ValueObject::Dump(Stream &s, in Dump()
2738 ValueObjectSP ValueObject::CreateConstantValue(ConstString name) { in CreateConstantValue()
2767 ValueObjectSP ValueObject::GetQualifiedRepresentationIfAvailable( in GetQualifiedRepresentationIfAvailable()
2798 ValueObjectSP ValueObject::Dereference(Status &error) { in Dereference()
2894 ValueObjectSP ValueObject::AddressOf(Status &error) { in AddressOf()
2937 ValueObjectSP ValueObject::DoCast(const CompilerType &compiler_type) { in DoCast()
2941 ValueObjectSP ValueObject::Cast(const CompilerType &compiler_type) { in Cast()
2975 lldb::ValueObjectSP ValueObject::Clone(ConstString new_name) { in Clone()
2979 ValueObjectSP ValueObject::CastPointerType(const char *name, in CastPointerType()
2994 ValueObjectSP ValueObject::CastPointerType(const char *name, TypeSP &type_sp) { in CastPointerType()
3008 lldb::addr_t ValueObject::GetLoadAddress() { in GetLoadAddress()
3030 llvm::Expected<lldb::ValueObjectSP> ValueObject::CastDerivedToBaseType( in CastDerivedToBaseType()
3087 return ValueObject::CreateValueObjectFromAddress(name, addr, exe_ctx, type, in CastDerivedToBaseType()
3101 ValueObject::CastBaseToDerivedType(CompilerType type, uint64_t offset) { in CastBaseToDerivedType()
3153 lldb::ValueObjectSP value = ValueObject::CreateValueObjectFromAddress( in CastBaseToDerivedType()
3165 lldb::ValueObjectSP ValueObject::CastToBasicType(CompilerType type) { in CastToBasicType()
3205 return ValueObject::CreateValueObjectFromBool( in CastToBasicType()
3210 return ValueObject::CreateValueObjectFromBool( in CastToBasicType()
3229 return ValueObject::CreateValueObjectFromAPInt(target, ext, type, in CastToBasicType()
3255 return ValueObject::CreateValueObjectFromAPInt(target, integer, type, in CastToBasicType()
3270 return ValueObject::CreateValueObjectFromAPFloat(target, f, type, in CastToBasicType()
3285 return ValueObject::CreateValueObjectFromAPFloat(target, f, type, in CastToBasicType()
3300 return ValueObject::CreateValueObjectFromAPFloat(target, f, type, in CastToBasicType()
3316 lldb::ValueObjectSP ValueObject::CastToEnumType(CompilerType type) { in CastToEnumType()
3352 return ValueObject::CreateValueObjectFromAPInt(target, integer, type, in CastToEnumType()
3363 return ValueObject::CreateValueObjectFromAPInt(target, ext, type, in CastToEnumType()
3376 ValueObject::EvaluationPoint::EvaluationPoint() : m_mod_id(), m_exe_ctx_ref() {} in EvaluationPoint()
3378 ValueObject::EvaluationPoint::EvaluationPoint(ExecutionContextScope *exe_scope, in EvaluationPoint()
3415 ValueObject::EvaluationPoint::EvaluationPoint( in EvaluationPoint()
3416 const ValueObject::EvaluationPoint &rhs) in EvaluationPoint()
3419 ValueObject::EvaluationPoint::~EvaluationPoint() = default;
3429 bool ValueObject::EvaluationPoint::SyncWithProcessState( in SyncWithProcessState()
3496 void ValueObject::EvaluationPoint::SetUpdated() { in SetUpdated()
3503 void ValueObject::ClearUserVisibleData(uint32_t clear_mask) { in ClearUserVisibleData()
3527 SymbolContextScope *ValueObject::GetSymbolContextScope() { in GetSymbolContextScope()
3536 ValueObject::CreateValueObjectFromExpression(llvm::StringRef name, in CreateValueObjectFromExpression()
3543 lldb::ValueObjectSP ValueObject::CreateValueObjectFromExpression( in CreateValueObjectFromExpression()
3559 lldb::ValueObjectSP ValueObject::CreateValueObjectFromAddress( in CreateValueObjectFromAddress()
3589 lldb::ValueObjectSP ValueObject::CreateValueObjectFromData( in CreateValueObjectFromData()
3603 ValueObject::CreateValueObjectFromAPInt(lldb::TargetSP target, in CreateValueObjectFromAPInt()
3613 return ValueObject::CreateValueObjectFromData(name, *data_sp, exe_ctx, type); in CreateValueObjectFromAPInt()
3616 lldb::ValueObjectSP ValueObject::CreateValueObjectFromAPFloat( in CreateValueObjectFromAPFloat()
3623 ValueObject::CreateValueObjectFromBool(lldb::TargetSP target, bool value, in CreateValueObjectFromBool()
3641 return ValueObject::CreateValueObjectFromData(name, *data_sp, exe_ctx, in CreateValueObjectFromBool()
3645 lldb::ValueObjectSP ValueObject::CreateValueObjectFromNullptr( in CreateValueObjectFromNullptr()
3659 return ValueObject::CreateValueObjectFromData(name, *data_sp, exe_ctx, type); in CreateValueObjectFromNullptr()
3662 ModuleSP ValueObject::GetModule() { in GetModule()
3663 ValueObject *root(GetRoot()); in GetModule()
3669 ValueObject *ValueObject::GetRoot() { in GetRoot()
3672 return (m_root = FollowParentChain([](ValueObject *vo) -> bool { in GetRoot()
3677 ValueObject *
3678 ValueObject::FollowParentChain(std::function<bool(ValueObject *)> f) { in FollowParentChain()
3679 ValueObject *vo = this; in FollowParentChain()
3688 AddressType ValueObject::GetAddressTypeOfChildren() { in GetAddressTypeOfChildren()
3690 ValueObject *root(GetRoot()); in GetAddressTypeOfChildren()
3697 lldb::DynamicValueType ValueObject::GetDynamicValueType() { in GetDynamicValueType()
3698 ValueObject *with_dv_info = this; in GetDynamicValueType()
3707 lldb::Format ValueObject::GetFormat() const { in GetFormat()
3708 const ValueObject *with_fmt_info = this; in GetFormat()
3717 lldb::LanguageType ValueObject::GetPreferredDisplayLanguage() { in GetPreferredDisplayLanguage()
3736 void ValueObject::SetPreferredDisplayLanguageIfNeeded(lldb::LanguageType lt) { in SetPreferredDisplayLanguageIfNeeded()
3741 bool ValueObject::CanProvideValue() { in CanProvideValue()
3751 ValueObjectSP ValueObject::Persist() { in Persist()
3779 lldb::ValueObjectSP ValueObject::GetVTable() { in GetVTable()