From 603a19929ce360185d8b51cecb36ba69cce567ed Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Fri, 6 May 2016 11:54:41 +1000 Subject: [PATCH] Pass in string lengths to Gecko_GetAttrAsUTF8. --- ports/geckolib/bindings.rs | 4 ++-- ports/geckolib/wrapper.rs | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ports/geckolib/bindings.rs b/ports/geckolib/bindings.rs index 618c049bafc..bbf332a3415 100644 --- a/ports/geckolib/bindings.rs +++ b/ports/geckolib/bindings.rs @@ -106,8 +106,8 @@ extern "C" { -> *mut ServoComputedValues; pub fn Servo_AddRefComputedValues(arg1: *mut ServoComputedValues); pub fn Servo_ReleaseComputedValues(arg1: *mut ServoComputedValues); - pub fn Gecko_GetAttrAsUTF8(element: *mut RawGeckoElement, ns: *const u8, - name: *const u8, length: *mut u32) + pub fn Gecko_GetAttrAsUTF8(element: *mut RawGeckoElement, ns: *const u8, nslen: u32, + name: *const u8, namelen: u32, length: *mut u32) -> *const ::std::os::raw::c_char; pub fn Gecko_GetAtomAsUTF16(atom: *mut nsIAtom, length: *mut u32) -> *const u16; diff --git a/ports/geckolib/wrapper.rs b/ports/geckolib/wrapper.rs index f27cf770bf0..91a391fc23c 100644 --- a/ports/geckolib/wrapper.rs +++ b/ports/geckolib/wrapper.rs @@ -344,7 +344,9 @@ impl<'le> TElement for GeckoElement<'le> { fn get_attr<'a>(&'a self, namespace: &Namespace, name: &Atom) -> Option<&'a str> { unsafe { let mut length: u32 = 0; - let ptr = Gecko_GetAttrAsUTF8(self.element, namespace.0.as_ptr(), name.as_ptr(), &mut length); + let ptr = Gecko_GetAttrAsUTF8(self.element, + namespace.0.as_ptr(), namespace.0.len() as u32, + name.as_ptr(), name.len() as u32, &mut length); reinterpret_string(ptr, length) } }