@@ -278,6 +278,9 @@ static void PyDict_SetItemStringDecRef(PyObject *p, const char *key, PyObject *v
278278 }
279279 $result = obj;
280280 };
281+
282+ #define STR_OR_NONE (str ) (!(str) ? " None" : str)
283+
281284struct nvme_root {
282285 %immutable config_file;
283286 char *config_file;
@@ -444,11 +447,9 @@ struct nvme_ns {
444447 void set_symname (const char *hostsymname) {
445448 nvme_host_set_hostsymname ($self, hostsymname);
446449 }
447- char *__str__ () {
448- static char tmp[2048 ];
449450
450- sprintf (tmp, " nvme_host(%s,%s) " , $self-> hostnqn , $self-> hostid );
451- return tmp ;
451+ PyObject * __str__ () {
452+ return PyUnicode_FromFormat ( " nvme.host(%s,%s) " , STR_OR_NONE ($self-> hostnqn ), STR_OR_NONE ($self-> hostid )) ;
452453 }
453454 struct host_iter __iter__ () {
454455 struct host_iter ret = { .root = nvme_host_get_root ($self),
@@ -514,11 +515,8 @@ struct nvme_ns {
514515 ~nvme_subsystem () {
515516 nvme_free_subsystem ($self);
516517 }
517- char *__str__ () {
518- static char tmp[1024 ];
519-
520- sprintf (tmp, " nvme_subsystem(%s,%s)" , $self->name ,$self->subsysnqn );
521- return tmp;
518+ PyObject *__str__ () {
519+ return PyUnicode_FromFormat (" nvme.subsystem(%s,%s)" , STR_OR_NONE ($self->name ), STR_OR_NONE ($self->subsysnqn ));
522520 }
523521 struct subsystem_iter __iter__ () {
524522 struct subsystem_iter ret = { .host = nvme_subsystem_get_host ($self),
@@ -736,11 +734,8 @@ struct nvme_ns {
736734 ~nvme_ns () {
737735 nvme_free_ns ($self);
738736 }
739- char *__str__ () {
740- static char tmp[1024 ];
741-
742- sprintf (tmp, " nvme_ns(%u)" , $self->nsid );
743- return tmp;
737+ PyObject *__str__ () {
738+ return PyUnicode_FromFormat (" nvme.ns(%u)" , $self->nsid );
744739 }
745740 struct ns_iter __iter__ () {
746741 struct ns_iter ret = { .ctrl = nvme_ns_get_ctrl ($self),
0 commit comments