@Override
	public void deleteAtOffset(int offset) {
		if (offset < 0) {
			throw new IllegalArgumentException("Offset cannot be negative.");
		}
		if (offset > structLength) {
			return;
		}

		int index = Collections.binarySearch(components, Integer.valueOf(offset),
			OffsetComparator.INSTANCE);

		if (index < 0) {
			if (offset == structLength) {
				return;
			}
			shiftOffsets(-index - 1, -1, -1);
		}
		else {
			// delete all components containing offset working backward from last such component
			index = advanceToLastComponentContainingOffset(index, offset);
			DataTypeComponentImpl dtc = components.get(index);
			while (dtc.containsOffset(offset)) {
				doDeleteWithComponentShift(index, false);
				if (--index < 0) {
					break;
				}
				dtc = components.get(index);
			}
		}
		repack(false);
		notifySizeChanged();
	}
Advance from specified defined-component index to the last component which contains the specified offset.
@param index any defined component index which contains offset
@param offset offset within structure
@return index of last defined component containing specific offset.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StructureDataType.java