Fix conditional logic for using arrays with OutputStream.write
authorKevin Wasserman <krwasserman@painless-security.com>
Tue, 17 Mar 2015 20:16:06 +0000 (16:16 -0400)
committerKevin Wasserman <krwasserman@painless-security.com>
Tue, 17 Mar 2015 20:16:06 +0000 (16:16 -0400)
gio-2.0.vapi switched to arrays with vala 0.11.1

Makefile.am
configure.ac
src/moonshot-local-flat-file-store.vala

index 290639d..0994d1f 100644 (file)
@@ -183,6 +183,9 @@ AM_VALAFLAGS += \
        --define=IPC_DBUS
 endif
 endif
+if GIO_VAPI_USES_ARRAYS
+AM_VALAFLAGS += --define=GIO_VAPI_USES_ARRAYS
+endif
 
 EXTRA_DIST = webprovisioning/moonshot.xml $(dbusservice_in_files) \
        webprovisioning/complex-test.msht webprovisioning/sample.msht \
index 8ad0e01..16f3dda 100644 (file)
@@ -103,9 +103,14 @@ AM_CONDITIONAL([IPC_DBUS], [test "$SERVER_IPC_MODULE" != "msrpc-glib2-1.0"])
 AM_CONDITIONAL([IPC_DBUS_GLIB], [test "$SERVER_IPC_MODULE" = "dbus-glib-1"])
 AM_CONDITIONAL([IPC_GDBUS], [test "$SERVER_IPC_MODULE" = "gio-2.0"])
 
+vala_version=`$VALAC --version | sed 's/Vala  *//'`
+AS_VERSION_COMPARE(["$vala_version"], [0.11.1],
+  [gio_vapi_uses_arrays="no"],
+  [gio_vapi_uses_arrays="yes"],
+  [gio_vapi_uses_arrays="yes"])
+AM_CONDITIONAL([GIO_VAPI_USES_ARRAYS], [test "$gio_vapi_uses_arrays" = "yes"])
 if test "$SERVER_IPC_MODULE" = "dbus-glib-1"; then
   AC_MSG_CHECKING([$VALAC is no greater than 0.12.1])
-  vala_version=`$VALAC --version | sed 's/Vala  *//'`
   AS_VERSION_COMPARE([0.12.2], ["$vala_version"],
     [vala_supports_dbus_glib="no"],
     [vala_supports_dbus_glib="no"],
index 48efabe..0946316 100644 (file)
@@ -179,11 +179,11 @@ public class LocalFlatFileStore : Object, IIdentityCardStore {
             var filename = Path.build_filename (path, FILE_NAME);
             var file  = File.new_for_path(filename);
             var stream = file.replace(null, false, FileCreateFlags.PRIVATE);
-#if IPC_DBUS_GLIB
+#if GIO_VAPI_USES_ARRAYS
+            stream.write(text.data);
+#else
             var bits = text.data;
             stream.write(&bits[0], bits.length);
-#else
-            stream.write(text.data);
 #endif
         }
         catch (Error e) {