File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -219,6 +219,21 @@ def allocate_register(name)
219
219
@allocated_registers << name
220
220
end
221
221
222
+ #
223
+ # Mark the register as de-allocated.
224
+ #
225
+ # @param [Symbol] name
226
+ # The register name.
227
+ #
228
+ # @return [Set<Symbol>]
229
+ # The set of allocated registers.
230
+ #
231
+ # @since 1.0.0
232
+ #
233
+ def free_register ( name )
234
+ @allocated_registers . delete ( name )
235
+ end
236
+
222
237
#
223
238
# Accesses a register.
224
239
#
Original file line number Diff line number Diff line change 197
197
end
198
198
end
199
199
200
+ describe "#free_register" do
201
+ let ( :name ) { :ebx }
202
+
203
+ before do
204
+ subject . allocate_register ( name )
205
+ subject . free_register ( name )
206
+ end
207
+
208
+ it "must remove the register name to #allocated_registers" do
209
+ expect ( subject . allocated_registers ) . to_not include ( name )
210
+ end
211
+ end
212
+
200
213
describe "#register" do
201
214
it "must return a Register" do
202
215
expect ( subject . register ( :eax ) ) . to be_kind_of ( Ronin ::ASM ::Register )
You can’t perform that action at this time.
0 commit comments