OSDN Git Service

dshow: invert condition to avoid leaking objects
authorRamiro Polla <ramiro.polla@gmail.com>
Fri, 9 Sep 2011 03:16:17 +0000 (00:16 -0300)
committerStefano Sabatini <stefasab@gmail.com>
Fri, 16 Sep 2011 09:16:05 +0000 (11:16 +0200)
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
libavdevice/dshow.c

index 5f155e6..8dc9df9 100644 (file)
@@ -261,7 +261,7 @@ dshow_cycle_devices(AVFormatContext *avctx, ICreateDevEnum *devenum,
         return AVERROR(EIO);
     }
 
-    while (IEnumMoniker_Next(classenum, 1, &m, NULL) == S_OK && !device_filter) {
+    while (!device_filter && IEnumMoniker_Next(classenum, 1, &m, NULL) == S_OK) {
         IPropertyBag *bag = NULL;
         char *buf = NULL;
         VARIANT var;
@@ -469,7 +469,7 @@ dshow_cycle_pins(AVFormatContext *avctx, enum dshowDeviceType devtype,
         av_log(avctx, AV_LOG_INFO, "DirectShow %s device options\n",
                devtypename);
     }
-    while (IEnumPins_Next(pins, 1, &pin, NULL) == S_OK && !device_pin) {
+    while (!device_pin && IEnumPins_Next(pins, 1, &pin, NULL) == S_OK) {
         IKsPropertySet *p = NULL;
         IEnumMediaTypes *types = NULL;
         PIN_INFO info = {0};
@@ -508,7 +508,7 @@ dshow_cycle_pins(AVFormatContext *avctx, enum dshowDeviceType devtype,
             goto next;
 
         IEnumMediaTypes_Reset(types);
-        while (IEnumMediaTypes_Next(types, 1, &type, NULL) == S_OK && !device_pin) {
+        while (!device_pin && IEnumMediaTypes_Next(types, 1, &type, NULL) == S_OK) {
             if (IsEqualGUID(&type->majortype, mediatype[devtype])) {
                 device_pin = pin;
                 goto next;