From ade01bf85aebeabc7f3261b663334ec15963c38e Mon Sep 17 00:00:00 2001 From: Joonas Javanainen Date: Fri, 12 Dec 2014 17:37:54 +0200 Subject: [PATCH] Use "let ref" with raw pointers and derive Copy when required This is the minimal set of changes that is needed to compile this project with the latest nightly. Many more structs will probably also want Copy (as shown by the warnings), but I'll leave that for other people to decide. --- src/sdl2/event.rs | 76 ++++++++++++++++++++++---------------------- src/sdl2/keycode.rs | 2 +- src/sdl2/pixels.rs | 2 +- src/sdl2/rect.rs | 4 +-- src/sdl2/scancode.rs | 2 +- src/sdl2/touch.rs | 2 +- src/sdl2/version.rs | 2 +- src/sdl2/video.rs | 2 +- 8 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/sdl2/event.rs b/src/sdl2/event.rs index fbe5404b..8fe3cb70 100644 --- a/src/sdl2/event.rs +++ b/src/sdl2/event.rs @@ -730,36 +730,36 @@ impl Event { let event_type: EventType = FromPrimitive::from_uint(raw_type as uint).unwrap_or(EventType::User); unsafe { match event_type { EventType::Quit => { - let event = *raw.quit(); + let ref event = *raw.quit(); Event::Quit(event.timestamp as uint) } EventType::AppTerminating => { - let event = *raw.common(); + let ref event = *raw.common(); Event::AppTerminating(event.timestamp as uint) } EventType::AppLowMemory => { - let event = *raw.common(); + let ref event = *raw.common(); Event::AppLowMemory(event.timestamp as uint) } EventType::AppWillEnterBackground => { - let event = *raw.common(); + let ref event = *raw.common(); Event::AppWillEnterBackground(event.timestamp as uint) } EventType::AppDidEnterBackground => { - let event = *raw.common(); + let ref event = *raw.common(); Event::AppDidEnterBackground(event.timestamp as uint) } EventType::AppWillEnterForeground => { - let event = *raw.common(); + let ref event = *raw.common(); Event::AppWillEnterForeground(event.timestamp as uint) } EventType::AppDidEnterForeground => { - let event = *raw.common(); + let ref event = *raw.common(); Event::AppDidEnterForeground(event.timestamp as uint) } EventType::Window => { - let event = *raw.window(); + let ref event = *raw.window(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -774,7 +774,7 @@ impl Event { // TODO: SysWMEventType EventType::KeyDown => { - let event = *raw.key(); + let ref event = *raw.key(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -791,7 +791,7 @@ impl Event { event.repeat != 0) } EventType::KeyUp => { - let event = *raw.key(); + let ref event = *raw.key(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -808,7 +808,7 @@ impl Event { event.repeat != 0) } EventType::TextEditing => { - let event = *raw.edit(); + let ref event = *raw.edit(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -821,7 +821,7 @@ impl Event { event.start as int, event.length as int) } EventType::TextInput => { - let event = *raw.text(); + let ref event = *raw.text(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -834,7 +834,7 @@ impl Event { } EventType::MouseMotion => { - let event = *raw.motion(); + let ref event = *raw.motion(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -849,7 +849,7 @@ impl Event { event.xrel as int, event.yrel as int) } EventType::MouseButtonDown => { - let event = *raw.button(); + let ref event = *raw.button(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -863,7 +863,7 @@ impl Event { event.x as int, event.y as int) } EventType::MouseButtonUp => { - let event = *raw.button(); + let ref event = *raw.button(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -877,7 +877,7 @@ impl Event { event.x as int, event.y as int) } EventType::MouseWheel => { - let event = *raw.wheel(); + let ref event = *raw.wheel(); let window = video::Window::from_id(event.windowID); let window = match window { @@ -891,48 +891,48 @@ impl Event { } EventType::JoyAxisMotion => { - let event = *raw.jaxis(); + let ref event = *raw.jaxis(); Event::JoyAxisMotion(event.timestamp as uint, event.which as int, event.axis as int, event.value) } EventType::JoyBallMotion => { - let event = *raw.jball(); + let ref event = *raw.jball(); Event::JoyBallMotion(event.timestamp as uint, event.which as int, event.ball as int, event.xrel, event.yrel) } EventType::JoyHatMotion => { - let event = *raw.jhat(); + let ref event = *raw.jhat(); Event::JoyHatMotion(event.timestamp as uint, event.which as int, event.hat as int, joystick::HatState::from_bits(event.value).unwrap()) } EventType::JoyButtonDown => { - let event = *raw.jbutton(); + let ref event = *raw.jbutton(); Event::JoyButtonDown(event.timestamp as uint, event.which as int, event.button as int) } EventType::JoyButtonUp => { - let event = *raw.jbutton(); + let ref event = *raw.jbutton(); Event::JoyButtonUp(event.timestamp as uint, event.which as int, event.button as int) } EventType::JoyDeviceAdded => { - let event = *raw.jdevice(); + let ref event = *raw.jdevice(); Event::JoyDeviceAdded(event.timestamp as uint, event.which as int) } EventType::JoyDeviceRemoved => { - let event = *raw.jdevice(); + let ref event = *raw.jdevice(); Event::JoyDeviceRemoved(event.timestamp as uint, event.which as int) } EventType::ControllerAxisMotion => { - let event = *raw.caxis(); + let ref event = *raw.caxis(); let axis = controller::wrap_controller_axis(event.axis); Event::ControllerAxisMotion(event.timestamp as uint, @@ -940,51 +940,51 @@ impl Event { event.value) } EventType::ControllerButtonDown => { - let event = *raw.cbutton(); + let ref event = *raw.cbutton(); let button = controller::wrap_controller_button(event.button); Event::ControllerButtonDown(event.timestamp as uint, event.which as int, button) } EventType::ControllerButtonUp => { - let event = *raw.cbutton(); + let ref event = *raw.cbutton(); let button = controller::wrap_controller_button(event.button); Event::ControllerButtonUp(event.timestamp as uint, event.which as int, button) } EventType::ControllerDeviceAdded => { - let event = *raw.cdevice(); + let ref event = *raw.cdevice(); Event::ControllerDeviceAdded(event.timestamp as uint, event.which as int) } EventType::ControllerDeviceRemoved => { - let event = *raw.cdevice(); + let ref event = *raw.cdevice(); Event::ControllerDeviceRemoved(event.timestamp as uint, event.which as int) } EventType::ControllerDeviceRemapped => { - let event = *raw.cdevice(); + let ref event = *raw.cdevice(); Event::ControllerDeviceRemapped(event.timestamp as uint, event.which as int) } EventType::FingerDown => { - let event = *raw.tfinger(); + let ref event = *raw.tfinger(); Event::FingerDown(event.timestamp as uint, event.touchId as i64, event.fingerId as i64, event.x as f64, event.y as f64, event.dx as f64, event.dy as f64, event.pressure as f64) } EventType::FingerUp => { - let event = *raw.tfinger(); + let ref event = *raw.tfinger(); Event::FingerUp(event.timestamp as uint, event.touchId as i64, event.fingerId as i64, event.x as f64, event.y as f64, event.dx as f64, event.dy as f64, event.pressure as f64) } EventType::FingerMotion => { - let event = *raw.tfinger(); + let ref event = *raw.tfinger(); Event::FingerMotion(event.timestamp as uint, event.touchId as i64, event.fingerId as i64, event.x as f64, event.y as f64, @@ -992,7 +992,7 @@ impl Event { event.pressure as f64) } EventType::DollarGesture => { - let event = *raw.dgesture(); + let ref event = *raw.dgesture(); Event::DollarGesture(event.timestamp as uint, event.touchId as i64, event.gestureId as i64, @@ -1001,7 +1001,7 @@ impl Event { event.y as f64) } EventType::DollarRecord => { - let event = *raw.dgesture(); + let ref event = *raw.dgesture(); Event::DollarRecord(event.timestamp as uint, event.touchId as i64, event.gestureId as i64, @@ -1010,7 +1010,7 @@ impl Event { event.y as f64) } EventType::MultiGesture => { - let event = *raw.mgesture(); + let ref event = *raw.mgesture(); Event::MultiGesture(event.timestamp as uint, event.touchId as i64, event.dTheta as f64, event.dDist as f64, event.x as f64, @@ -1018,11 +1018,11 @@ impl Event { } EventType::ClipboardUpdate => { - let event = *raw.common(); + let ref event = *raw.common(); Event::ClipboardUpdate(event.timestamp as uint) } EventType::DropFile => { - let event = *raw.drop(); + let ref event = *raw.drop(); let text = String::from_raw_buf(event.file as *const u8); ll::SDL_free(event.file as *const c_void); @@ -1039,7 +1039,7 @@ impl Event { return Event::None; } - let event = *raw.user(); + let ref event = *raw.user(); let window = video::Window::from_id(event.windowID); let window = match window { diff --git a/src/sdl2/keycode.rs b/src/sdl2/keycode.rs index eaa3c17e..0763db9d 100644 --- a/src/sdl2/keycode.rs +++ b/src/sdl2/keycode.rs @@ -1,6 +1,6 @@ use std::hash::{mod, Hash}; -#[deriving(PartialEq, Eq, FromPrimitive, Show)] +#[deriving(PartialEq, Eq, FromPrimitive, Show, Copy)] pub enum KeyCode { Unknown = 0, Backspace = 8, diff --git a/src/sdl2/pixels.rs b/src/sdl2/pixels.rs index 78f1d106..0cf5f6bc 100644 --- a/src/sdl2/pixels.rs +++ b/src/sdl2/pixels.rs @@ -97,7 +97,7 @@ pub struct Palette { impl_raw_accessors!(Palette, *const ll::SDL_Palette) -#[deriving(PartialEq, Clone)] +#[deriving(PartialEq, Clone, Copy)] pub enum Color { RGB(u8, u8, u8), RGBA(u8, u8, u8, u8) diff --git a/src/sdl2/rect.rs b/src/sdl2/rect.rs index 6814749a..64c55c06 100644 --- a/src/sdl2/rect.rs +++ b/src/sdl2/rect.rs @@ -6,7 +6,7 @@ use std::mem; use libc::c_int; /// A structure that defines a two dimensional point. -#[deriving(PartialEq, Clone, Show)] +#[deriving(PartialEq, Clone, Show, Copy)] #[repr(C)] pub struct Point { pub x: i32, @@ -14,7 +14,7 @@ pub struct Point { } /// A structure that defines a rectangle, with the origin at the upper left. -#[deriving(PartialEq, Clone, Show)] +#[deriving(PartialEq, Clone, Show, Copy)] #[repr(C)] pub struct Rect { pub x: i32, diff --git a/src/sdl2/scancode.rs b/src/sdl2/scancode.rs index 2c120326..fa9f2db0 100644 --- a/src/sdl2/scancode.rs +++ b/src/sdl2/scancode.rs @@ -1,6 +1,6 @@ use std::hash::{mod, Hash}; -#[deriving(PartialEq, Eq, FromPrimitive, Show)] +#[deriving(PartialEq, Eq, FromPrimitive, Show, Copy)] pub enum ScanCode { Unknown = 0, A = 4, diff --git a/src/sdl2/touch.rs b/src/sdl2/touch.rs index 0abf5232..94c9f813 100644 --- a/src/sdl2/touch.rs +++ b/src/sdl2/touch.rs @@ -2,7 +2,7 @@ use std::ptr; pub type TouchDevice = ll::SDL_TouchID; -#[deriving(PartialEq)] +#[deriving(PartialEq, Copy)] #[repr(C)] pub struct Finger { id: TouchDevice, diff --git a/src/sdl2/version.rs b/src/sdl2/version.rs index dc9a90c1..cbc0f05f 100644 --- a/src/sdl2/version.rs +++ b/src/sdl2/version.rs @@ -37,7 +37,7 @@ impl Version { /// Convert a raw *SDL_version to Version. pub fn from_ll(sv: *const ll::SDL_version) -> Version { unsafe { - let v = *sv; + let ref v = *sv; Version{ major: v.major as int, minor: v.minor as int, patch: v.patch as int } } } diff --git a/src/sdl2/video.rs b/src/sdl2/video.rs index 47ca59b3..921e2df2 100644 --- a/src/sdl2/video.rs +++ b/src/sdl2/video.rs @@ -296,7 +296,7 @@ pub enum FullscreenType { FTDesktop = ll::SDL_WindowFlags::SDL_WINDOW_FULLSCREEN_DESKTOP as int } -#[deriving(PartialEq)] +#[deriving(PartialEq, Copy)] pub enum WindowPos { PosUndefined, PosCentered,