]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[script] Creating a string object with a NULL string now returns a NULL object
authorCharlie Brej <cbrej@cs.man.ac.uk>
Mon, 29 Jun 2009 13:41:23 +0000 (14:41 +0100)
committerCharlie Brej <cbrej@cs.man.ac.uk>
Mon, 29 Jun 2009 13:41:23 +0000 (14:41 +0100)
Strings in C are often set to NULL to signify that they have not been set. This
should be carried through to the script system rather than failing at the
conversion.

src/plugins/splash/script/script-object.c

index 115ad3fe3ab003021096c28dc4198e1b3c3a6984..110810be51bf4cabf0c8e6b9f20e983740fc25da 100644 (file)
@@ -192,6 +192,13 @@ char* script_obj_print (script_obj* obj)
 }
 
 
+script_obj* script_obj_new_null (void)
+{
+ script_obj* obj = malloc(sizeof(script_obj));
+ obj->type = SCRIPT_OBJ_TYPE_NULL;
+ obj->refcount = 1;
+ return obj;
+}
 
 script_obj* script_obj_new_int (int number)
 {
@@ -213,6 +220,7 @@ script_obj* script_obj_new_float (float number)
 
 script_obj* script_obj_new_string (const char* string)
 {
+ if (!string) return script_obj_new_null ();
  script_obj* obj = malloc(sizeof(script_obj));
  obj->type = SCRIPT_OBJ_TYPE_STRING;
  obj->refcount = 1;
@@ -220,14 +228,6 @@ script_obj* script_obj_new_string (const char* string)
  return obj;
 }
 
-script_obj* script_obj_new_null (void)
-{
- script_obj* obj = malloc(sizeof(script_obj));
- obj->type = SCRIPT_OBJ_TYPE_NULL;
- obj->refcount = 1;
- return obj;
-}
-
 script_obj* script_obj_new_hash (void)
 {
  script_obj* obj = malloc(sizeof(script_obj));