ffi-bitfield 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ffi/bit_field/property.rb +3 -5
- data/lib/ffi/bit_field/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e2586353fd6f53337bf3ffef8019d477c279c0284642165fad4d592315ccc1a
|
4
|
+
data.tar.gz: 2772a6b9ef73faeccc105c501494d6fe82079614b6e23bab14de3954d1f1d1f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 911015a3478c323f4469076489e68d7634d12188200dea1e8ae76263af368b992fb424c6f086cc46cb30aa501ca12326039a8a6a184524e2f54b6cb35f2495c1
|
7
|
+
data.tar.gz: 82951de5f89c776408d35e656a8ce100c1306899e808569dd181cd5c56bfbee961329ac989455b9814e5815928227e732d4ea1e8d21a09141fadcb00cce49760
|
@@ -19,13 +19,11 @@ module FFI
|
|
19
19
|
def []=(member_name, value)
|
20
20
|
parent_name, start, width = member_value_info(member_name)
|
21
21
|
if parent_name
|
22
|
-
raise "Value #{value} is larger than #{
|
22
|
+
raise "Value #{value} is larger than bit_length: #{width}" if value.bit_length > width
|
23
23
|
|
24
24
|
parent_value = get_member_value(parent_name)
|
25
|
-
|
26
|
-
|
27
|
-
masked_value = parent_value & mask
|
28
|
-
new_value = masked_value | (value << start)
|
25
|
+
new_value = (((1 << width) - 1 << start) & parent_value ^ parent_value) |
|
26
|
+
(value << start)
|
29
27
|
set_member_value(parent_name, new_value)
|
30
28
|
else
|
31
29
|
set_member_value(member_name, value)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-bitfield
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kojix2
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-07-
|
11
|
+
date: 2021-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|