boolean remove(short offset) {
        if (keySet instanceof FullKeySet) {
            keySet = new BitTree((short)(pageSize-1), true);
        }

		boolean result = keySet.remove(offset);
        if (keySet.size() == 0) {
            keySet = new RedBlackKeySet((short)(pageSize-1));
        }
        int row = getRow(offset,false);
        if (row >= 0) {
	        table.removeRow(row);
        }

        if ((keySet.size() < switchSize/2) && (indexer == null)) {
            DataTable newTable = new DataTable();
            indexer = new ShortKeyIndexer();
            short oldKey = keySet.getFirst();
            while(oldKey != -1) {
                int newRow = indexer.put(oldKey);
                table.copyRowTo(oldKey, newTable, newRow);
				oldKey = keySet.getNext(oldKey);
            }
            table = newTable;
        }
            
        return result;
	}
Remove the property at the given offset.
@param offset offset into the page
@return true if the property was removed; return false
if there was not a property at offset
Ghidra/Framework/Generic/src/main/java/ghidra/util/map/ValueStoragePage.java