Merge branch 'main' into process-endianness

This commit is contained in:
Filip Tibell 2024-11-05 13:09:40 +01:00 committed by GitHub
commit 65bdd40a1b
Signed by: DevComp
GPG key ID: B5690EEEBB952194
4 changed files with 12 additions and 25 deletions

View file

@ -113,7 +113,6 @@ pub fn add_methods<'lua, M: LuaUserDataMethods<'lua, Instance>>(m: &mut M) {
}, },
); );
m.add_method("IsA", |_, this, class_name: String| { m.add_method("IsA", |_, this, class_name: String| {
ensure_not_destroyed(this)?;
Ok(class_is_a(&this.class_name, class_name).unwrap_or(false)) Ok(class_is_a(&this.class_name, class_name).unwrap_or(false))
}); });
m.add_method( m.add_method(
@ -217,19 +216,20 @@ fn instance_property_get<'lua>(
this: &Instance, this: &Instance,
prop_name: String, prop_name: String,
) -> LuaResult<LuaValue<'lua>> { ) -> LuaResult<LuaValue<'lua>> {
ensure_not_destroyed(this)?;
match prop_name.as_str() { match prop_name.as_str() {
"ClassName" => return this.get_class_name().into_lua(lua), "ClassName" => return this.get_class_name().into_lua(lua),
"Name" => {
return this.get_name().into_lua(lua);
}
"Parent" => { "Parent" => {
return this.get_parent().into_lua(lua); return this.get_parent().into_lua(lua);
} }
_ => {} _ => {}
} }
ensure_not_destroyed(this)?;
if prop_name.as_str() == "Name" {
return this.get_name().into_lua(lua);
}
if let Some(info) = find_property_info(&this.class_name, &prop_name) { if let Some(info) = find_property_info(&this.class_name, &prop_name) {
if let Some(prop) = this.get_property(&prop_name) { if let Some(prop) = this.get_property(&prop_name) {
if let DomValue::Enum(enum_value) = prop { if let DomValue::Enum(enum_value) = prop {

View file

@ -302,10 +302,7 @@ impl Instance {
pub fn get_parent(&self) -> Option<Instance> { pub fn get_parent(&self) -> Option<Instance> {
let dom = INTERNAL_DOM.lock().expect("Failed to lock document"); let dom = INTERNAL_DOM.lock().expect("Failed to lock document");
let parent_ref = dom let parent_ref = dom.get_by_ref(self.dom_ref)?.parent();
.get_by_ref(self.dom_ref)
.expect("Failed to find instance in document")
.parent();
if parent_ref == dom.root_ref() { if parent_ref == dom.root_ref() {
None None

View file

@ -20,14 +20,10 @@ assert(not pcall(function()
return child1.Name return child1.Name
end)) end))
assert(not pcall(function() assert(not child1.Parent)
return child1.Parent
end))
assert(not pcall(function() assert(not pcall(function()
return child2.Name return child2.Name
end)) end))
assert(not pcall(function() assert(not child2.Parent)
return child2.Parent
end))

View file

@ -14,22 +14,16 @@ assert(not pcall(function()
return root.Name return root.Name
end)) end))
assert(not pcall(function() assert(not root.Parent)
return root.Parent
end))
assert(not pcall(function() assert(not pcall(function()
return child.Name return child.Name
end)) end))
assert(not pcall(function() assert(not child.Parent)
return child.Parent
end))
assert(not pcall(function() assert(not pcall(function()
return descendant.Name return descendant.Name
end)) end))
assert(not pcall(function() assert(not descendant.Parent)
return descendant.Parent
end))