X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fdriver-types.cpp;h=fef8547b35c11e33e52cf59df7b72b4a14b36881;hb=79e12d94cc21232477796a4e76fc2ddb5d88f9dc;hp=d18ecfa34952f9404ed41140146d85465ef50307;hpb=41a6ad96e81a8d8153c54877c4c12f61100677a9;p=guile-irrlicht.git diff --git a/src/driver-types.cpp b/src/driver-types.cpp index d18ecfa..fef8547 100644 --- a/src/driver-types.cpp +++ b/src/driver-types.cpp @@ -28,34 +28,39 @@ using namespace irr; video::E_DRIVER_TYPE scm_to_driver_type (SCM driver_type) { - char* driverType = scm_to_utf8_stringn (scm_symbol_to_string (driver_type), NULL); - if (!strcmp (driverType, "null")) + char* type_name = scm_to_utf8_string (scm_symbol_to_string (driver_type)); + video::E_DRIVER_TYPE type; + + if (!strcmp (type_name, "null")) { - return video::EDT_NULL; + type = video::EDT_NULL; } - else if (!strcmp (driverType, "software")) + else if (!strcmp (type_name, "software")) { - return video::EDT_SOFTWARE; + type = video::EDT_SOFTWARE; } - else if (!strcmp (driverType, "burnings")) + else if (!strcmp (type_name, "burnings")) { - return video::EDT_BURNINGSVIDEO; + type = video::EDT_BURNINGSVIDEO; } - else if (!strcmp (driverType, "direct3d8")) + else if (!strcmp (type_name, "direct3d8")) { - return video::EDT_DIRECT3D8; + type = video::EDT_DIRECT3D8; } - else if (!strcmp (driverType, "direct3d9")) + else if (!strcmp (type_name, "direct3d9")) { - return video::EDT_DIRECT3D9; + type = video::EDT_DIRECT3D9; } - else if (!strcmp (driverType, "opengl")) + else if (!strcmp (type_name, "opengl")) { - return video::EDT_OPENGL; + type = video::EDT_OPENGL; } else { scm_error (scm_arg_type_key, NULL, "Wrong driver type: ~S", scm_list_1 (driver_type), scm_list_1 (driver_type)); } + + free (type_name); + return type; }