@Override
	public void clearComponent(int ordinal) {
		lock.acquire();
		try {
			checkDeleted();
			if (isPackingEnabled()) {
				delete(ordinal);
				return;
			}
			if (ordinal < 0 || ordinal >= numComponents) {
				throw new IndexOutOfBoundsException(ordinal);
			}
			int idx = Collections.binarySearch(components, Integer.valueOf(ordinal),
				OrdinalComparator.INSTANCE);
			if (idx >= 0) {
				DataTypeComponentDB dtc = doDelete(idx);
				int len = dtc.getLength();
				if (len > 1) {
					shiftOffsets(idx, len - 1, 0); // updates timestamp
				}
				else {
					compositeAdapter.updateRecord(record, true); // update timestamp
				}
				repack(false, false);
				dataMgr.dataTypeChanged(this, false);
			}
		}
		catch (IOException e) {
			dataMgr.dbError(e);
		}
		finally {
			lock.release();
		}
	}
Create cloned structure for target data type manager preserving source archive information.
<p>
WARNING! cloning non-packed structures which contain bitfields can produce invalid results
when switching endianness due to the differences in packing order.

@param dtm target data type manager
@return cloned structure
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/StructureDB.java