Vala: 运算后释放 GChecksum 得到正确的 MD5 hash

Vala: Free GChecksum after operation to get a correct MD5 hash

我正在学习 Vala,我正在尝试构建一个 Gtk+ Gui 来输出文件的 MD5 散列。 目前我正在使用 valadoc.org 来编写我的应用程序,我正在使用 GLib.Checksum 来计算校验和。 GLib.Checksum 处理 MD5、SHA1、SHA256 和 SHA512(在文档中找到)。 所以我使用文档中的代码来计算输入文件路径的哈希值。我发现 Vala 没有自动释放 GChecksum,我也不知道如何手动释放它。

感谢您的帮助。

这是我的 Vala 代码:

private string HashSum( string path, string hash){
    Checksum checksum = new Checksum(ChecksumType.MD5);
    FileStream stream = FileStream.open(path, "rb");
    //var stream = File.new_for_path(path).read();

   uint8 fbuf[100];
   size_t size;

   while ((size = stream.read(fbuf)) > 0){
      checksum.update(fbuf, size);
    }
   unowned string digest = checksum.get_string();
   stdout.printf("%s: %s\n", path, digest);

   return @"$hash hash: $digest";
}

我想问题出在我的 Valac 版本上。我将它升级到我在 Ubuntu 存储库中找到的最后一个版本:Vala 0.30.0。现在输出是正确的。