)]}'
{
  "commit": "a29ac16632aec6065c72985b9f7eeb1ca6fbef4a",
  "tree": "29891f85b28638e1be02db1695e53dc3e0b726a8",
  "parents": [
    "e5fbe28e5424d26fc2c25d0a7ecb927d3c80d5e8"
  ],
  "author": {
    "name": "Eduardo Habkost",
    "email": "ehabkost@redhat.com",
    "time": "Fri Nov 06 19:20:04 2015 -0200"
  },
  "committer": {
    "name": "Paolo Bonzini",
    "email": "pbonzini@redhat.com",
    "time": "Thu Dec 17 15:24:33 2015 +0100"
  },
  "message": "exec: Eliminate qemu_ram_free_from_ptr()\n\nReplace qemu_ram_free_from_ptr() with qemu_ram_free().\n\nThe only difference between qemu_ram_free_from_ptr() and\nqemu_ram_free() is that g_free_rcu() is used instead of\ncall_rcu(reclaim_ramblock). We can safely replace it because:\n\n* RAM blocks allocated by qemu_ram_alloc_from_ptr() always have\n  RAM_PREALLOC set;\n* reclaim_ramblock(block) will do nothing except g_free(block)\n  if RAM_PREALLOC is set at block-\u003eflags.\n\nSigned-off-by: Eduardo Habkost \u003cehabkost@redhat.com\u003e\nMessage-Id: \u003c1446844805-14492-2-git-send-email-ehabkost@redhat.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0bf0a6e7eb04fe38379ea84023eb61f977c8a474",
      "old_mode": 33188,
      "old_path": "exec.c",
      "new_id": "d12cd42f4cc16cb3778a75b2c33a47137e78eadb",
      "new_mode": 33188,
      "new_path": "exec.c"
    },
    {
      "type": "modify",
      "old_id": "7115154bc1a85815752b47cdad3b06fce8248b7c",
      "old_mode": 33188,
      "old_path": "include/exec/ram_addr.h",
      "new_id": "d1d9963680c0d786a56c08e2527c211f51223f8b",
      "new_mode": 33188,
      "new_path": "include/exec/ram_addr.h"
    },
    {
      "type": "modify",
      "old_id": "e193658fc7a47dc4db81038cd6e16c05d5aa1687",
      "old_mode": 33188,
      "old_path": "memory.c",
      "new_id": "cf5b05f8982bc1758e7928d90c2eea517fce09a4",
      "new_mode": 33188,
      "new_path": "memory.c"
    }
  ]
}
