eolian: allow read-only stringshare in events
authorDaniel Kolesa <d.kolesa@samsung.com>
Mon, 23 Sep 2019 13:26:23 +0000 (15:26 +0200)
committerJongmin Lee <jm105.lee@samsung.com>
Mon, 23 Sep 2019 21:32:19 +0000 (06:32 +0900)
While the type cannot be moved to the callee, it at least provides
a hint that it's a stringshare, leeting people ref it instead of
copying.

src/lib/eolian/database_validate.c

index a24105c..d0bf40d 100644 (file)
@@ -646,11 +646,11 @@ _validate_event(Validate_State *vals, Eolian_Event *event, Eina_Hash *nhash)
           }
         /* any type past builtin value types and containers is not allowed,
          * any_value is allowed but passed as const reference, any_value_ref
-         * is not; string is allowed, but mutable strings or stringshares are
+         * is not; string and stringshare is allowed, but mutable strings are
          * not and neither are string buffers, the type is never owned by the
          * callee, so all strings passed in are unowned and read-only
          */
-        if (kwid >= KW_any_value_ref && kwid != KW_string)
+        if (kwid >= KW_any_value_ref && kwid != KW_string && kwid != KW_stringshare)
           {
              _eo_parser_log(&tp->base, "forbidden event type");
              return _reset_stable(vals, was_stable, EINA_FALSE);