Rémi Bernon (@rbernon) commented about dlls/windows.devices.enumeration/aqs.y:
+static const PROPVARIANT propval_empty = { VT_EMPTY };
+static int aqs_error( struct aqs_parser *parser, const char *str ) +{
- if (TRACE_ON( aqs)) ERR( "%s\n", str );
- return 0;
+}
+#define GET_COMPARE_EXPR( ctx, op, prop_vt, val_vt, out ) do { \
HRESULT hr; \
hr = get_compare_expr( ctx, op, (prop_vt)->pwszVal, val_vt, out ); \
PropVariantClear( prop_vt ); \
PropVariantClear( val_vt ); \
if (FAILED( hr )) \
YYABORT; \
- } while (0)
What about sinking both propvariant ownership into the expr and letting it deal with cleanup?