diff --git a/src/core/serialize.c b/src/core/serialize.c index bdbab209e..21cccc8b9 100644 --- a/src/core/serialize.c +++ b/src/core/serialize.c @@ -305,20 +305,20 @@ bool mCoreSaveStateNamed(struct mCore* core, struct VFile* vf, int flags) { size_t stateSize = core->stateSize(core); if (flags & SAVESTATE_METADATA) { - uint64_t creationUsec; + uint64_t* creationUsec = malloc(sizeof(*creationUsec)); #ifndef _MSC_VER struct timeval tv; if (!gettimeofday(&tv, 0)) { uint64_t usec = tv.tv_usec; usec += tv.tv_sec * 1000000LL; - STORE_64LE(usec, 0, &creationUsec); + STORE_64LE(usec, 0, creationUsec); } #else struct timespec ts; if (timespec_get(&ts, TIME_UTC)) { uint64_t usec = ts.tv_nsec / 1000; usec += ts.tv_sec * 1000000LL; - STORE_64LE(usec, 0, &creationUsec); + STORE_64LE(usec, 0, creationUsec); } #endif else { @@ -326,11 +326,10 @@ bool mCoreSaveStateNamed(struct mCore* core, struct VFile* vf, int flags) { } struct mStateExtdataItem item = { - .size = sizeof(creationUsec), - .data = malloc(sizeof(creationUsec)), + .size = sizeof(*creationUsec), + .data = creationUsec, .clean = free }; - *(uint64_t*) item.data = creationUsec; mStateExtdataPut(&extdata, EXTDATA_META_TIME, &item); }