@@ -492,16 +492,19 @@ inline iga::Op OpSpec::op() const
492492}
493493
494494
495- #define IGA_OPSPEC_STRING_GETTER (API, INITSIZE ) { \
496- char _staticBuf[INITSIZE]; \
497- char *strPtr = &_staticBuf[0 ]; \
498- size_t strCap = sizeof (_staticBuf); \
499- IGA_CHECKED_CALL (API, m_op, strPtr, &strCap); \
500- if (strCap > sizeof (_staticBuf)) { \
501- strPtr = (char *)alloca (strCap); \
495+ #define IGA_OPSPEC_STRING_GETTER (API, INITSIZE ) { \
496+ char _staticBuf[INITSIZE]; \
497+ char *strPtr = &_staticBuf[0 ]; \
498+ size_t strCap = sizeof (_staticBuf); \
499+ IGA_CHECKED_CALL (API, m_op, strPtr, &strCap); \
500+ if (strCap > sizeof (_staticBuf)) { \
501+ strPtr = (char *)malloc (strCap); \
502502 IGA_CHECKED_CALL (API, m_op, strPtr, &strCap); \
503- } \
504- return std::string (strPtr); \
503+ std::string res (strPtr); \
504+ free (strPtr); \
505+ return res; \
506+ } \
507+ return std::string (strPtr); \
505508 }
506509inline std::string OpSpec::menmonic () const
507510IGA_OPSPEC_STRING_GETTER(iga_opspec_mnemonic, 16 );
0 commit comments