)]}'
{
  "commit": "286c9e9c72a49310240e881949ac9060f4a6bb15",
  "tree": "d355a09805d66a0528e6d674fc7d5504ce31908b",
  "parents": [
    "704043e27fd5aa3e8c7c4c52fbf781985f9be88b"
  ],
  "author": {
    "name": "Pali Rohár",
    "email": "pali.rohar@gmail.com",
    "time": "Sun Jul 27 13:38:48 2025 +0200"
  },
  "committer": {
    "name": "Martin Storsjö",
    "email": "martin@martin.st",
    "time": "Thu Jul 31 23:04:30 2025 +0300"
  },
  "message": "gendef: Detect jumping of stdcall function to imported ordinal-only symbol\n\nCurrently gendef does not recognize information about stdcall functions\nwhich jumps to function from external library imported by ordinal number.\nIt prints just:\n\n  Check!!! Couldn\u0027t determine function argument count. Function doesn\u0027t return.\n\nWith this change gendef recognize also such jumps and prints better info:\n\n  Check!!! return value is from ord 1 in lib.dll\n\nFirst thing which is fixed in this change is mixing of ordinal numbers and\nhint numbers. Those are two different things which in most cases are not\nsame numbers for exported functions in DLL export table.\n\nImported function in PE import table is either by name + hint number or by\nthe ordinal number. Never both. Currently the imp32_add() is taking\nargument named \"ord\", but do_import_read32() calls that function with\nparsed hint number. And then dump_def() function is printing line\n\"from \u003cname\u003e in \u003cdll\u003e (ordinal \u003c%u\u003e)\" but for %u it prints hint number.\nThis is misleading for reader as it makes hard to understand it.\n\nExtend do_import_read32() to properly read ordinal or hint number (what is\navailable) and adjust dump_def() to print ordinal number or export name,\nbased on what is present. Printing the hint number from import table is\nuseless as in most cases it does not match the hint number from DLL export\ntable.\n\nSigned-off-by: Martin Storsjö \u003cmartin@martin.st\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a1c9795fdff9a1c0bca699c311cebbfd0bb422fc",
      "old_mode": 33188,
      "old_path": "mingw-w64-tools/gendef/src/gendef.c",
      "new_id": "c66b28e05bdf6505b2b4ac79527cdfe704636d0d",
      "new_mode": 33188,
      "new_path": "mingw-w64-tools/gendef/src/gendef.c"
    },
    {
      "type": "modify",
      "old_id": "c6acac7c0cb71ebcb3c93be4b5336bc928f65b2b",
      "old_mode": 33188,
      "old_path": "mingw-w64-tools/gendef/src/gendef.h",
      "new_id": "68b168db4dee570c6e5bb712efd41055901c4f8f",
      "new_mode": 33188,
      "new_path": "mingw-w64-tools/gendef/src/gendef.h"
    }
  ]
}
