public void removeFrameSlot(Object identifier) { CompilerAsserts.neverPartOfCompilation("interpreter-only. includes hashmap operations."); assert identifierToSlotMap.containsKey(identifier); slots.remove(identifierToSlotMap.get(identifier)); identifierToSlotMap.remove(identifier); updateVersion(); getNotInFrameAssumption(identifier); }
/** * Removes a slot. If the identifier is found, its slot is removed from this descriptor. This is * a slow operation. * * @param identifier identifies the slot to remove * @throws IllegalArgumentException if no such frame slot exists * @since 0.8 or earlier */ public void removeFrameSlot(Object identifier) { CompilerAsserts.neverPartOfCompilation(NEVER_PART_OF_COMPILATION_MESSAGE); synchronized (lock) { FrameSlot slot = identifierToSlotMap.get(identifier); if (slot == null) { throw new IllegalArgumentException("no such frame slot: " + identifier); } slots.remove(slot); identifierToSlotMap.removeKey(identifier); updateVersion(); getNotInFrameAssumption(identifier); } }
/** * Removes a slot. If the identifier is found, its slot is removed from this descriptor. This is * a slow operation. * * @param identifier identifies the slot to remove * @throws IllegalArgumentException if no such frame slot exists * @since 0.8 or earlier */ public void removeFrameSlot(Object identifier) { CompilerAsserts.neverPartOfCompilation(NEVER_PART_OF_COMPILATION_MESSAGE); if (!identifierToSlotMap.containsKey(identifier)) { throw new IllegalArgumentException("no such frame slot: " + identifier); } slots.remove(identifierToSlotMap.get(identifier)); identifierToSlotMap.removeKey(identifier); updateVersion(); getNotInFrameAssumption(identifier); }