Unreachable code path in Fiddle::ValueUtil#wrap_arg
Maumagnaguagno opened this issue · 5 comments
In Fiddle::ValueUtil#wrap_arg there is a long case-when for arg
with an unreachable code path.
When arg
and ty
are of Array type, and ty[0]
is TYPE_CHAR, there is another condition, for arg
to be String at Line 101.
Even if this condition is fixed, val
is undefined at Line 102 for this method.
Lines 95 to 106 in 04238ce
Should Lines 100-103 be removed?
Can you create a script that uses 101 and share it to us?
require 'fiddle/value'
c = Class.new.extend(Fiddle::ValueUtil)
p c.wrap_arg(['55','0'],[Fiddle::TYPE_VOIDP]) # Line 99
p c.wrap_arg(['test'],[Fiddle::TYPE_CHAR]) # Line 106
Ah, could you use normal API instead of directly using wrap_arg
? It seems that lib/fiddle/struct.rb
uses wrap_arg
.
Unfortunately I am not that familiar with Fiddle structs to make a valid minimal example to reach that point.
I just noticed the loose variable val
and that arg
needs to be both Array and String at the same time.
OK.
I'll take a look at this later.