Page MenuHomePhabricator

efl-mono: remove eina.Value.Flush()
Closed, ResolvedPublic

Description

C# takes care of eina.Value lifecycle, there is no need to expose the Flush() method.

If the type of an existing eina.Value needs to be changed, Setup() can be called directly, no need to flush it first.

I do not think it has any reason to exist in C# and it can be confusing to use, so I recommend we simply remove it form the bindings.

For example:

var v1 = new eina.Value(eina.ValueType.Int32);
var v2 = v1;
v1.Flush();
Console.WriteLine(v2);

The above code prints an error, because v2 = v1 creates a reference, it does not copy the value, and, after the flush, the original eina.Value is uninitialized.