aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG4
-rw-r--r--src/long_mode/mod.rs5
-rw-r--r--src/protected_mode/mod.rs5
-rw-r--r--src/real_mode/mod.rs5
4 files changed, 16 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index b4deece..585fcfa 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,9 @@
## unreleased
* fix incorrect old yaxpeax-arch version selection for ffi crates
+* address incorrect behavior of `Prefixes::cs()`
+ * this "getter" would in fact set the selected segment to `cs`. it has never
+ actually returned a `bool`, like other selector-checking methods on
+ `Prefixes`.
## 1.1.5
* fix several typos across crate docs - thank you Bruce! (aka github user waywardmonkeys)
diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs
index 6412afb..a89d673 100644
--- a/src/long_mode/mod.rs
+++ b/src/long_mode/mod.rs
@@ -4557,8 +4557,11 @@ impl Prefixes {
fn set_lock(&mut self) { self.bits |= 0x4 }
#[inline]
pub fn lock(&self) -> bool { self.bits & 0x4 == 4 }
+ #[deprecated(since = "0.0.1", note = "pub fn cs has never returned `bool` indicating the current selector is `cs`. use `selects_cs` for this purpose, until 2.x that will correct `pub fn cs`.")]
#[inline]
- pub fn cs(&mut self) { self.segment = Segment::CS }
+ pub fn cs(&mut self) {}
+ #[inline]
+ pub fn selects_cs(&self) -> bool { self.segment == Segment::CS }
#[inline]
pub fn ds(&self) -> bool { self.segment == Segment::DS }
#[inline]
diff --git a/src/protected_mode/mod.rs b/src/protected_mode/mod.rs
index 2993968..223c834 100644
--- a/src/protected_mode/mod.rs
+++ b/src/protected_mode/mod.rs
@@ -4514,8 +4514,11 @@ impl Prefixes {
fn set_lock(&mut self) { self.bits |= 0x4 }
#[inline]
pub fn lock(&self) -> bool { self.bits & 0x4 == 4 }
+ #[deprecated(since = "0.0.1", note = "pub fn cs has never returned `bool` indicating the current selector is `cs`. use `selects_cs` for this purpose, until 2.x that will correct `pub fn cs`.")]
#[inline]
- pub fn cs(&mut self) { self.segment = Segment::CS }
+ pub fn cs(&mut self) {}
+ #[inline]
+ pub fn selects_cs(&self) -> bool { self.segment == Segment::CS }
#[inline]
fn set_cs(&mut self) { self.segment = Segment::CS }
#[inline]
diff --git a/src/real_mode/mod.rs b/src/real_mode/mod.rs
index cad9499..1f6614e 100644
--- a/src/real_mode/mod.rs
+++ b/src/real_mode/mod.rs
@@ -4514,8 +4514,11 @@ impl Prefixes {
fn set_lock(&mut self) { self.bits |= 0x4 }
#[inline]
pub fn lock(&self) -> bool { self.bits & 0x4 == 4 }
+ #[deprecated(since = "0.0.1", note = "pub fn cs has never returned `bool` indicating the current selector is `cs`. use `selects_cs` for this purpose, until 2.x that will correct `pub fn cs`.")]
#[inline]
- pub fn cs(&mut self) { self.segment = Segment::CS }
+ pub fn cs(&mut self) {}
+ #[inline]
+ pub fn selects_cs(&self) -> bool { self.segment == Segment::CS }
#[inline]
fn set_cs(&mut self) { self.segment = Segment::CS }
#[inline]