X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=src%2Fdriver-types.cpp;h=fef8547b35c11e33e52cf59df7b72b4a14b36881;hp=3486251f27bad3365021e61d4a5a7de6ed2e73f9;hb=357f279e004c6257a160205835c06c283d317ef7;hpb=384a8fb56d8500dc3551085191a39c9da70e221c diff --git a/src/driver-types.cpp b/src/driver-types.cpp index 3486251..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_string (scm_symbol_to_string (driver_type)); - 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; }