Fixed object references

This commit is contained in:
Connor Wood
2017-07-25 11:51:43 +01:00
parent 8a5ec3a26b
commit 968fd30b0a
6 changed files with 7 additions and 7 deletions

View File

@@ -48,7 +48,7 @@ pub fn parse_data_ref_obj(data: &[u8],
match parse_super_name(data, ctx) {
Ok(res) => match res.val {
AmlValue::String(s) => Ok(AmlParseType {
val: AmlValue::ObjectReference(ObjectReference::NamedObj(s)),
val: AmlValue::ObjectReference(ObjectReference::Object(s)),
len: res.len
}),
_ => Ok(res)

View File

@@ -758,7 +758,7 @@ fn parse_connect_field(data: &[u8],
} else {
let name = parse_name_string(&data[1..], ctx)?;
Ok(AmlParseType {
val: AmlValue::ObjectReference(ObjectReference::NamedObj(name.val.get_as_string()?)),
val: AmlValue::Alias(name.val.get_as_string()?),
len: name.len + 1
})
}

View File

@@ -28,8 +28,7 @@ pub enum FieldSelector {
pub enum ObjectReference {
ArgObj(u8),
LocalObj(u8),
NamedObj(String),
Object(Box<AmlValue>),
Object(String),
Index(Box<AmlValue>, Box<AmlValue>)
}
@@ -98,6 +97,7 @@ impl Clone for Accessor {
pub enum AmlValue {
None,
Uninitialized,
Alias(String),
Buffer(Vec<u8>),
BufferField(BufferField),
DDBHandle(Vec<String>),

View File

@@ -44,7 +44,7 @@ fn parse_alias_op(data: &[u8],
let local_scope_string = get_namespace_string(ctx.scope.clone(), source_name.val)?;
let local_alias_string = get_namespace_string(ctx.scope.clone(), alias_name.val)?;
ctx.add_to_namespace(local_scope_string, AmlValue::ObjectReference(ObjectReference::NamedObj(local_alias_string)))?;
ctx.add_to_namespace(local_scope_string, AmlValue::Alias(local_alias_string))?;
Ok(AmlParseType {
val: AmlValue::None,

View File

@@ -151,7 +151,7 @@ fn parse_def_load(data: &[u8],
let name = parse_name_string(&data[2..], ctx)?;
let ddb_handle_object = parse_super_name(&data[2 + name.len..], ctx)?;
let tbl = ctx.get(AmlValue::ObjectReference(ObjectReference::NamedObj(name.val.get_as_string()?))).get_as_buffer()?;
let tbl = ctx.get(name.val).get_as_buffer()?;
let sdt = unsafe { &*(tbl.as_ptr() as *const Sdt) };
if is_aml_table(sdt) {

View File

@@ -217,7 +217,7 @@ fn parse_package_elements_list(data: &[u8],
} else {
let d = parse_name_string(&data[current_offset..], ctx)?;
AmlParseType {
val: AmlValue::ObjectReference(ObjectReference::NamedObj(d.val.get_as_string()?)),
val: AmlValue::ObjectReference(ObjectReference::Object(d.val.get_as_string()?)),
len: d.len
}
};