That's exactly my point :). We should get these offsets from struct definitions for these types and not hard code these offsets.  They might be different due to platform alignment, type sizes etc. that's why we should depend on what information the platform supplies for these types.