X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fdriver-types.cpp;h=fef8547b35c11e33e52cf59df7b72b4a14b36881;hb=43b3e4fbfc4a80af937ba223dfa15ee8b6b8e736;hp=3486251f27bad3365021e61d4a5a7de6ed2e73f9;hpb=4f049544ec827a9f1f16a913d7241f29179fdde7;p=guile-irrlicht.git 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; }