Hello community,

here is the log from the commit of package ghc-haskell-gi-base for 
openSUSE:Factory checked in at 2017-05-06 18:28:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-haskell-gi-base (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-haskell-gi-base.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-haskell-gi-base"

Sat May  6 18:28:40 2017 rev:3 rq:491472 version:0.20.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-haskell-gi-base/ghc-haskell-gi-base.changes  
2017-04-14 13:39:24.821038273 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-haskell-gi-base.new/ghc-haskell-gi-base.changes 
    2017-05-06 18:28:41.935291757 +0200
@@ -1,0 +2,5 @@
+Wed Apr 19 13:32:36 UTC 2017 - psim...@suse.com
+
+- Update to version 0.20.2 with cabal2obs.
+
+-------------------------------------------------------------------

Old:
----
  haskell-gi-base-0.20.1.tar.gz

New:
----
  haskell-gi-base-0.20.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-haskell-gi-base.spec ++++++
--- /var/tmp/diff_new_pack.BTL6Uj/_old  2017-05-06 18:28:42.619195255 +0200
+++ /var/tmp/diff_new_pack.BTL6Uj/_new  2017-05-06 18:28:42.623194690 +0200
@@ -18,7 +18,7 @@
 
 %global pkg_name haskell-gi-base
 Name:           ghc-%{pkg_name}
-Version:        0.20.1
+Version:        0.20.2
 Release:        0
 Summary:        Foundation for libraries generated by haskell-gi
 License:        LGPL-2.1+

++++++ haskell-gi-base-0.20.1.tar.gz -> haskell-gi-base-0.20.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haskell-gi-base-0.20.1/ChangeLog.md 
new/haskell-gi-base-0.20.2/ChangeLog.md
--- old/haskell-gi-base-0.20.1/ChangeLog.md     2017-03-28 07:57:57.000000000 
+0200
+++ new/haskell-gi-base-0.20.2/ChangeLog.md     2017-04-14 10:30:46.000000000 
+0200
@@ -1,3 +1,7 @@
+### 0.20.2
+
++ Fix fromGVariant for empty arrays, see 
[#91](https://github.com/haskell-gi/haskell-gi/issues/91) for details.
+
 ### 0.20.1
 
 + Add Data.GI.Base.CallStack, abstracting (and backporting to the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/haskell-gi-base-0.20.1/Data/GI/Base/BasicConversions.hsc 
new/haskell-gi-base-0.20.2/Data/GI/Base/BasicConversions.hsc
--- old/haskell-gi-base-0.20.1/Data/GI/Base/BasicConversions.hsc        
2017-03-28 07:57:57.000000000 +0200
+++ new/haskell-gi-base-0.20.2/Data/GI/Base/BasicConversions.hsc        
2017-04-14 10:30:46.000000000 +0200
@@ -1,4 +1,4 @@
-{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE ScopedTypeVariables, ConstraintKinds, FlexibleContexts #-}
 {-# OPTIONS_GHC -fno-warn-name-shadowing #-}
 module Data.GI.Base.BasicConversions
     ( gflagsToWord
@@ -75,6 +75,7 @@
 import qualified Data.ByteString.Internal as BI
 import Data.Maybe (fromMaybe)
 import Data.Text (Text)
+import qualified Data.Text as T
 import qualified Data.Text.Foreign as TF
 
 import Foreign.Ptr (Ptr, plusPtr, nullPtr, nullFunPtr, castPtr)
@@ -87,9 +88,11 @@
 import Data.Bits (Bits, (.|.), (.&.), shift)
 
 import Data.GI.Base.BasicTypes
+import Data.GI.Base.CallStack (HasCallStack)
 import Data.GI.Base.GHashTable (GEqualFunc, GHashFunc)
 import Data.GI.Base.ManagedPtr (copyBoxedPtr)
-import Data.GI.Base.Utils (allocBytes, callocBytes, memcpy, freeMem)
+import Data.GI.Base.Utils (allocBytes, callocBytes, memcpy, freeMem,
+                           checkUnexpectedReturnNULL)
 
 #include <glib-object.h>
 
@@ -370,7 +373,7 @@
                                poke ptr cstring
                                fill (ptr `plusPtr` sizeOf cstring) xs
 
-unpackZeroTerminatedUTF8CArray :: Ptr CString -> IO [Text]
+unpackZeroTerminatedUTF8CArray :: HasCallStack => Ptr CString -> IO [Text]
 unpackZeroTerminatedUTF8CArray listPtr = go listPtr
     where go :: Ptr CString -> IO [Text]
           go ptr = do
@@ -380,7 +383,8 @@
                else (:) <$> cstringToText cstring
                         <*> go (ptr `plusPtr` sizeOf cstring)
 
-unpackUTF8CArrayWithLength :: Integral a => a -> Ptr CString -> IO [Text]
+unpackUTF8CArrayWithLength :: (HasCallStack, Integral a) =>
+                              a -> Ptr CString -> IO [Text]
 unpackUTF8CArrayWithLength n ptr = go (fromIntegral n) ptr
     where go       :: Int -> Ptr CString -> IO [Text]
           go 0 _   = return []
@@ -414,7 +418,7 @@
                                poke ptr cstring
                                fill (ptr `plusPtr` sizeOf cstring) xs
 
-unpackZeroTerminatedFileNameArray :: Ptr CString -> IO [String]
+unpackZeroTerminatedFileNameArray :: HasCallStack => Ptr CString -> IO [String]
 unpackZeroTerminatedFileNameArray listPtr = go listPtr
     where go :: Ptr CString -> IO [String]
           go ptr = do
@@ -424,7 +428,7 @@
                else (:) <$> cstringToString cstring
                         <*> go (ptr `plusPtr` sizeOf cstring)
 
-unpackFileNameArrayWithLength :: Integral a =>
+unpackFileNameArrayWithLength :: (HasCallStack, Integral a) =>
                                  a -> Ptr CString -> IO [String]
 unpackFileNameArrayWithLength n ptr = go (fromIntegral n) ptr
     where go       :: Int -> Ptr CString -> IO [String]
@@ -442,8 +446,10 @@
 stringToCString :: String -> IO CString
 stringToCString str = withCString str g_strdup
 
-cstringToString :: CString -> IO String
-cstringToString = peekCString
+cstringToString :: HasCallStack => CString -> IO String
+cstringToString cstr = do
+  checkUnexpectedReturnNULL (T.pack "cstringToString") cstr
+  peekCString cstr
 
 foreign import ccall "g_strndup" g_strndup ::
     CString -> #{type gsize} -> IO CString
@@ -463,8 +469,9 @@
 foreign import ccall "strlen" c_strlen ::
     CString -> IO (CSize)
 
-cstringToText :: CString -> IO Text
+cstringToText :: HasCallStack => CString -> IO Text
 cstringToText cstr = do
+  checkUnexpectedReturnNULL (T.pack "cstringToText") cstr
   len <- c_strlen cstr
   let cstrlen = (cstr, fromIntegral len)
   TF.peekCStringLen cstrlen
@@ -472,8 +479,10 @@
 byteStringToCString :: ByteString -> IO CString
 byteStringToCString bs = B.useAsCString bs g_strdup
 
-cstringToByteString :: CString -> IO ByteString
-cstringToByteString = B.packCString
+cstringToByteString :: HasCallStack => CString -> IO ByteString
+cstringToByteString cstr = do
+  checkUnexpectedReturnNULL (T.pack "cstringToByteString") cstr
+  B.packCString cstr
 
 packPtrArray :: [Ptr a] -> IO (Ptr (Ptr a))
 packPtrArray items = do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haskell-gi-base-0.20.1/Data/GI/Base/GVariant.hsc 
new/haskell-gi-base-0.20.2/Data/GI/Base/GVariant.hsc
--- old/haskell-gi-base-0.20.1/Data/GI/Base/GVariant.hsc        2017-03-28 
07:57:57.000000000 +0200
+++ new/haskell-gi-base-0.20.2/Data/GI/Base/GVariant.hsc        2017-04-14 
10:30:46.000000000 +0200
@@ -636,8 +636,13 @@
 gvariant_get_children :: (Ptr GVariant) -> IO [GVariant]
 gvariant_get_children vptr = do
       n_children <- g_variant_n_children vptr
-      mapM ((g_variant_get_child_value vptr) >=> wrapGVariantPtr)
-               [0..(n_children-1)]
+      -- n_children is an unsigned type (Word64 in 64 bit
+      -- architectures), so if it is 0 and we substract one we would
+      -- wrap around to 2^64-1.
+      if n_children /= 0
+        then mapM ((g_variant_get_child_value vptr) >=> wrapGVariantPtr)
+             [0..(n_children-1)]
+        else return []
 
 instance IsGVariant a => IsGVariant (Maybe a) where
     toGVariant   = gvariantFromMaybe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haskell-gi-base-0.20.1/Data/GI/Base/Utils.hsc 
new/haskell-gi-base-0.20.2/Data/GI/Base/Utils.hsc
--- old/haskell-gi-base-0.20.1/Data/GI/Base/Utils.hsc   2017-03-28 
07:57:57.000000000 +0200
+++ new/haskell-gi-base-0.20.2/Data/GI/Base/Utils.hsc   2017-04-14 
10:30:46.000000000 +0200
@@ -193,7 +193,7 @@
 
 -- | An annotated version of `fromJust`, which raises a
 -- `UnexpectedNullPointerReturn` in case it encounters a `Nothing`.
-checkUnexpectedNothing :: T.Text -> IO (Maybe a) -> IO a
+checkUnexpectedNothing :: HasCallStack => T.Text -> IO (Maybe a) -> IO a
 checkUnexpectedNothing fnName action = do
   result <- action
   case result of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haskell-gi-base-0.20.1/haskell-gi-base.cabal 
new/haskell-gi-base-0.20.2/haskell-gi-base.cabal
--- old/haskell-gi-base-0.20.1/haskell-gi-base.cabal    2017-03-28 
07:57:57.000000000 +0200
+++ new/haskell-gi-base-0.20.2/haskell-gi-base.cabal    2017-04-14 
10:30:46.000000000 +0200
@@ -1,5 +1,5 @@
 name:                haskell-gi-base
-version:             0.20.1
+version:             0.20.2
 synopsis:            Foundation for libraries generated by haskell-gi
 description:         Foundation for libraries generated by haskell-gi
 homepage:            https://github.com/haskell-gi/haskell-gi-base


Reply via email to