40 def __init__(self, valobj, internal_dict):
42 valtype = valobj.GetType().GetCanonicalType()
44 scalar_type = valtype.GetTemplateArgumentType(0)
45 if not scalar_type.IsValid():
47 storage = valobj.GetChildMemberWithName(
"m_storage")
48 data = storage.GetChildMemberWithName(
"m_data")
49 data_type = data.GetType()
50 if data_type.IsPointerType():
51 scalar_type = data.GetType().GetPointeeType()
53 scalar_type = data.GetChildMemberWithName(
"array").GetType().GetArrayElementType()
54 self._scalar_type = scalar_type
55 self._scalar_size = self._scalar_type.GetByteSize()
57 name = valtype.GetName()
58 template_begin = name.find(
"<")
59 template_end = name.find(
">")
60 template_args = name[(template_begin + 1):template_end].
split(
",")
61 self._rows_compile_time =
int(template_args[1])
62 self._cols_compile_time =
int(template_args[2])
63 self._row_major = (
int(template_args[3]) & 1) != 0
65 max_rows =
int(template_args[4])
66 max_cols =
int(template_args[5])
67 self._fixed_storage = (max_rows != -1
and max_cols != -1)
void split(const DoubleVector &in_vector, Vector< DoubleVector * > &out_vector_pt)
Definition: double_vector.cc:1413