On 28/07/2017 19:52, Marc-André Lureau wrote: > > Stupid question: what's the benefit? > > scsi_create/scsi_free is a library API. If they have their own > allocator, we better use it, or it may easily break, no?
Well, that would be an API breakage, but I see the point. I think I would prefer something like static inline struct scsi_task *iscsi_create_task(...) { #if ... return scsi_create_task(...) #else /* Older versions of libiscsi have a bug, so include our * implementation. */ struct scsi_task *task = g_try_malloc0(sizeof(struct scsi_task)); if (!task) { task; } memcpy(&task->cdb[0], cdb, cdb_size); task->cdb_size = cdb_size; task->xfer_dir = xfer_dir; task->expxferlen = expxferlen; return task; #endif } > > Change malloc to g_new0 in the > existing code, and we even make it shorter... > > > replacing malloc with g_new is the subject of another upcoming series :) > (https://github.com/elmarco/clang-tools-extra/blob/master/clang-tidy/qemu/UseGnewCheck.cpp) >