On Fri, Aug 24, 2012 at 2:44 AM, Neil <n...@parkwaycc.co.uk> wrote:
> Justin Lebar wrote:
>
>>  %{C++
>>  inline int32_t GetFoo() {
>>    int32_t result;
>>    nsresult rv = GetFoo(&result);
>>    MOZ_ASSERT(NS_SUCCEEDED(rv));
>>    return result;
>>  }
>>  %}
>>
>
> Alternative approach?
> inline int32_t Foo(int32_t result = 0) {
>    GetFoo(&result);
>    return result;
>
> }

I think it would be better to bake the default params into the IDL, if
we wanted that.  0 isn't always what you want.

But I also think that [infallible] should mean "always gives you a
result," so you shouldn't have to worry about what the default is.

I'd be OK doing

>  inline int32_t GetFoo() {
>    int32_t result = 0;
>    nsresult rv = GetFoo(&result);
>    MOZ_ASSERT(NS_SUCCEEDED(rv));
>    return result;
>  }

so that we never return uninitialized memory in release builds.  0 may
or may not be right, but it should be no worse than a random value!
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to