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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b1c844129b0c04442babc63a9a7f3d19c294516532c15e48ee1bf3ff8ad0b8c2
4
- data.tar.gz: 142a0261ac03675d29b44cad920f450da835e50acf6604cec094cfc848b7c100
3
+ metadata.gz: 8e2586353fd6f53337bf3ffef8019d477c279c0284642165fad4d592315ccc1a
4
+ data.tar.gz: 2772a6b9ef73faeccc105c501494d6fe82079614b6e23bab14de3954d1f1d1f2
5
5
  SHA512:
6
- metadata.gz: 5ad37969ee8a6db1af07ee0b4a096aafbef506363466c7e7abd5869fdf58c81ef38658838323e30bd4840492727ca8fc1720a75dd18161cd5bcd758d9fa673ee
7
- data.tar.gz: f3063875bad8043f830be627f35034013d07b9dbd14f1415b040c790cae13afd85bd7a7c4b874697843e1057946cce6ec6750a30242371f4cd4d21bc05abae6f
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 #{(1 << width) - 1}" if value.bit_length > width
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
- all = ((1 << parent_value.bit_length) - 1)
26
- mask = all ^ (((1 << width) - 1) << start)
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)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module FFI
4
4
  module BitField
5
- VERSION = '0.0.5'
5
+ VERSION = '0.0.6'
6
6
  end
7
7
  end
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.5
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-16 00:00:00.000000000 Z
11
+ date: 2021-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi