ObjFW  Diff

Differences From Artifact [6d396e3db6]:

To Artifact [ea05d80823]:

  • File src/OFObject.h — part of check-in [7f304f573b] at 2023-11-03 00:16:18 on branch trunk — OFMatrix4x4: SSE4.1 for -[transformVectors:count:]

    This requires the vectors to be 16 byte aligned. In order to achieve
    this, the OFVector4D type is changed to have an alignment of 16 bytes.
    However, this does *not* break ABI because the only method actually
    requiring 16 byte alignment is -[transformVectors:count:], which was not
    in ObjFW 1.0. Hence binaries compiled for ObjFW 1.0 have no 16 byte
    alignment for OFVector4D, but also cannot ever call into any code that
    needs it. (-[transformedVector:] calls into -[transformVectors:count:],
    but creates a properly aligned copy that it passes.) (user: js, size: 43115) [annotate] [blame] [check-ins using]


345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
}

/**
 * @struct OFVector4D OFObject.h ObjFW/OFObject.h
 *
 * @brief A vector in 4D space.
 */
typedef struct OF_BOXABLE OFVector4D {
	/** The x coordinate of the vector */
	float x;
	/** The y coordinate of the vector */
	float y;
	/** The z coordinate of the vector */
	float z;
	/** The w coordinate of the vector */







|







345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
}

/**
 * @struct OFVector4D OFObject.h ObjFW/OFObject.h
 *
 * @brief A vector in 4D space.
 */
typedef struct OF_BOXABLE OF_ALIGN(16) OFVector4D {
	/** The x coordinate of the vector */
	float x;
	/** The y coordinate of the vector */
	float y;
	/** The z coordinate of the vector */
	float z;
	/** The w coordinate of the vector */