protected AbstractStructure(ResourceManager rm, int size, int alignment) {
this.data = new byte[size + alignment];
this.dataRes = rm.asMemoryResource(data);
Address ptr = dataRes.getAddress();
int offset = 0;
while (((offset + ptr.toInt()) & (alignment - 1)) != 0) {
offset++;
}
this.offset = offset;
this.descrAddr = dataRes.getAddress().toInt() + offset;
}