diff --git a/src/uuid/uuid.h b/src/uuid/uuid.h index ed493e8..7f17dcc 100644 --- a/src/uuid/uuid.h +++ b/src/uuid/uuid.h @@ -20,13 +20,14 @@ struct WUUID { Str8 uuid; }; -#define wapp_uuid_gen_uuid4() *(wapp_uuid_init_uuid4(&wapp_uuid_create())) - -/* Low level UUID API */ - #ifdef WAPP_PLATFORM_CPP +#define wapp_uuid_gen_uuid4() ([&](){ + wapp_persist WUUID id = wapp_uuid_create(); + return *wapp_uuid_init_uuid4(&id); +}()) #define wapp_uuid_create() (WUUID{wapp_str8_buf(UUID_BUF_LENGTH)}) #else +#define wapp_uuid_gen_uuid4() *(wapp_uuid_init_uuid4(&wapp_uuid_create())) #define wapp_uuid_create() ((WUUID){.uuid = wapp_str8_buf(UUID_BUF_LENGTH)}) #endif