)]}'
{
  "log": [
    {
      "commit": "1d26102faf2779291c867a13ceddf0b3057c0221",
      "tree": "6739d33477dfe00727efed9cb75a9d772d9681c3",
      "parents": [
        "11590e470dfc1a144eb5665655c7ff6627b8e0f6"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:46:48 2021"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:46:48 2021"
      },
      "message": "Add notice file saying the branch was renamed\n"
    },
    {
      "commit": "11590e470dfc1a144eb5665655c7ff6627b8e0f6",
      "tree": "d9b6272719f3374a5715a4a62e9955050400faa9",
      "parents": [
        "4c7b15c58bffd4bf97cfe7c0e9658e177c7c44ae"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:33:29 2021"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:33:29 2021"
      },
      "message": "Docs: update to match the last commit for create_array() too\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "4c7b15c58bffd4bf97cfe7c0e9658e177c7c44ae",
      "tree": "d5df67054296aa36d27e74876b3b0732e33eb5be",
      "parents": [
        "3d8da2ca83180f3ae92387f3cbd3da6c41252429"
      ],
      "author": {
        "name": "Michael Richardson",
        "email": "mcr@sandelman.ca",
        "time": "Tue Jan 19 21:57:46 2021"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:32:33 2021"
      },
      "message": "clarify that CborIndefiniteLength creates an indefinite map, which is not always supported\n"
    },
    {
      "commit": "3d8da2ca83180f3ae92387f3cbd3da6c41252429",
      "tree": "e563db764f0b54f391212b2c67df07c3afed7c19",
      "parents": [
        "5115a87bc7526a95780e0821f8293f89c3879371",
        "e35f736b00ccf19ae962fbf21ca3ed4ba2517c2e"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:30:15 2021"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:30:45 2021"
      },
      "message": "Merge commit \u0027refs/pull/197/head\u0027 of github.com:intel/tinycbor\n"
    },
    {
      "commit": "5115a87bc7526a95780e0821f8293f89c3879371",
      "tree": "76ced086d9951ab66778e45a9e030b2b71c0c814",
      "parents": [
        "d1062769ab9c25023a30816d92043a8ba34e19ab",
        "1a43b45ed97fa121f95c985e82cc85dc4a2ff53a"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:29:44 2021"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:29:44 2021"
      },
      "message": "Merge commit \u0027refs/pull/177/head\u0027 of github.com:intel/tinycbor\n"
    },
    {
      "commit": "d1062769ab9c25023a30816d92043a8ba34e19ab",
      "tree": "ed701ab37bd398a65bd77e6cda74e6821594465c",
      "parents": [
        "7c349dbb6b8d76db39383b226d3ebdf59b8ab37d"
      ],
      "author": {
        "name": "Michael Richardson",
        "email": "mcr@sandelman.ca",
        "time": "Tue Jan 19 21:57:28 2021"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 03 18:27:54 2021"
      },
      "message": "change the argument name from \"encoder\" to \"parentEncoder\", as the names were unclear. containerEncoder could be the containing Encoder\n"
    },
    {
      "commit": "7c349dbb6b8d76db39383b226d3ebdf59b8ab37d",
      "tree": "fe1717564737cc5c3f36459f256a32204d2d8900",
      "parents": [
        "4a13b3ed3e3532526ae44da1518df9bf5fdd91e7"
      ],
      "author": {
        "name": "Mahavir Jain",
        "email": "mahavir@espressif.com",
        "time": "Wed Feb 24 05:30:43 2021"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Feb 25 00:30:37 2021"
      },
      "message": "Add checks for memory allocation failures\n\nSigned-off-by: Mahavir Jain \u003cmahavir@espressif.com\u003e\n"
    },
    {
      "commit": "e35f736b00ccf19ae962fbf21ca3ed4ba2517c2e",
      "tree": "84c37340ddac5eec1bd27fda34626cc295eae957",
      "parents": [
        "4a13b3ed3e3532526ae44da1518df9bf5fdd91e7"
      ],
      "author": {
        "name": "Michael Richardson",
        "email": "mcr@sandelman.ca",
        "time": "Mon Jan 25 18:15:12 2021"
      },
      "committer": {
        "name": "Michael Richardson",
        "email": "mcr@sandelman.ca",
        "time": "Mon Jan 25 18:18:01 2021"
      },
      "message": "only build docs on master branch\n"
    },
    {
      "commit": "4a13b3ed3e3532526ae44da1518df9bf5fdd91e7",
      "tree": "9dd8f9728b54d4160edf5465baf0fe3fb6c68883",
      "parents": [
        "5d62d789c3111fd310c9131b05fd9a5913073247"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 12 01:19:25 2021"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Jan 13 03:25:18 2021"
      },
      "message": "parser: add a test that the string copy functions properly terminate\n\nOr don\u0027t terminate, as the case may be.\n\nRelates to #194.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "5d62d789c3111fd310c9131b05fd9a5913073247",
      "tree": "4d52c409791cf11cde75b708840842cb90b61a83",
      "parents": [
        "369959ac3dc06e76d201223fa167d973a1140dc5"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 22 12:51:34 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Dec 25 23:06:24 2020"
      },
      "message": "cborinternal_p.h: Fix AVX2 build with MSVC\n\nMSVC (and I think ICC too) are lacking the simpler, scalar instructions\nto convert from single-precision to half-precision and back. Instead, we\nneed to use the packed data intrinsics.\n\nFixes #192.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "369959ac3dc06e76d201223fa167d973a1140dc5",
      "tree": "38874468b2ad3f7cda01125eca9d269169ae253c",
      "parents": [
        "fc42a049853b802e45f49588f8148fc29d7b4d9c"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 22 14:42:37 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 22 14:42:37 2020"
      },
      "message": "AppVeyor: replace MSVC 2013 with 2019\n"
    },
    {
      "commit": "fc42a049853b802e45f49588f8148fc29d7b4d9c",
      "tree": "19793281ab06bf67f3d48709c530055041c6e1a1",
      "parents": [
        "9924cfed3b95ad6de299ae675064430fdb886216"
      ],
      "author": {
        "name": "Dan Church",
        "email": "amphetamachine@gmail.com",
        "time": "Wed Oct 21 21:07:46 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Oct 24 04:13:13 2020"
      },
      "message": "Fix links to shared library upon \"make install\"\n"
    },
    {
      "commit": "9924cfed3b95ad6de299ae675064430fdb886216",
      "tree": "c5220a66af9b934974cfc38a6e987c2b165997fc",
      "parents": [
        "c49bb8f5f158c9f37b7cef5bb9eb7ee0a9eb6707"
      ],
      "author": {
        "name": "Shubham Patil",
        "email": "shubham.patil@espressif.com",
        "time": "Thu Aug 13 12:48:11 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Aug 13 15:31:10 2020"
      },
      "message": "Encoder: Update documentation\n\nExchanged function documentation of cbor_encode_text_string\nand cbor_encode_byte_string\n\nSigned-off-by: Shubham Patil \u003cshubham.patil@espressif.com\u003e\n"
    },
    {
      "commit": "c49bb8f5f158c9f37b7cef5bb9eb7ee0a9eb6707",
      "tree": "4c6e69c1da86300edb70f260dd5f3473b2f52cde",
      "parents": [
        "71ce60962f8575c37981d1447f83e2e02709382a"
      ],
      "author": {
        "name": "Stewart Gebbie",
        "email": "sgebbie@gethos.net",
        "time": "Fri Mar 27 11:10:59 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jul 28 21:17:41 2020"
      },
      "message": "Refine handling of container state synchronisation\n\nWhen a container is closed, the outer container\u0027s buffer state is\nsynchronised with the inner container\u0027s state.\n\nThis was previously done via:\n\n```\nCborError cbor_encoder_close_container(CborEncoder *encoder, const CborEncoder *containerEncoder)\n{\n    if (encoder-\u003eend)\n        encoder-\u003edata.ptr \u003d containerEncoder-\u003edata.ptr;\n    else\n        encoder-\u003edata.bytes_needed \u003d containerEncoder-\u003edata.bytes_needed;\n    encoder-\u003eend \u003d containerEncoder-\u003eend;\n\n    ...\n\n    return CborNoError;\n}\n```\n\nHowever, strictly speaking the inner container could have updated `end` to be `NULL` if\nthe buffer was too small. In that case, the outer container should carry over `bytes_needed`\nand not `ptr`. However, the logic was using the outer container\u0027s \"stale\" view of `end`.\n\nHowever, generally `sizeof(ptr)` and `sizeof(bytes_needed)` are the same, and these values\nexist in a union. Therefore, the correct values where still being copied.\n\nThis change moves the synchronisation of `end` to ahead of the synchronisation of `data`.\n\nIt additionally, actually avoids this potential error by simply synchronising the full `data`\nstructure, thereby avoiding the conditional logic. Simplifying the code to simply:\n\n```\nencoder-\u003eend \u003d containerEncoder-\u003eend;\nencoder-\u003edata \u003d containerEncoder-\u003edata;\n```\n"
    },
    {
      "commit": "71ce60962f8575c37981d1447f83e2e02709382a",
      "tree": "9ad3647133de2a1217973bbea1d5a83c68f56450",
      "parents": [
        "085ca40781f7c39febe6d14fb7e5cba342e1804b"
      ],
      "author": {
        "name": "Alexander Richardson",
        "email": "Alexander.Richardson@cl.cam.ac.uk",
        "time": "Mon Jul 27 15:40:33 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jul 28 16:41:04 2020"
      },
      "message": "Fix -Werror,-Wself-assign on big-endian systems\n\nI was getting the following error when compiling cborencoder.c as part of\nQtBase for FreeBSD MIPS64:\nerror: explicitly assigning value of variable of type \u0027uint64_t\u0027 (aka \u0027unsigned long\u0027) to itself [-Werror,-Wself-assign]\n    v \u003d cbor_htonll(v);\n\nSigned-off-by: Alex Richardson \u003cAlexander.Richardson@cl.cam.ac.uk\u003e\n"
    },
    {
      "commit": "085ca40781f7c39febe6d14fb7e5cba342e1804b",
      "tree": "fbfbf61b969caef50aceb50816b2b258d7e632fd",
      "parents": [
        "e608465164f3886541f3a0fcacbb6b7b31888b5a"
      ],
      "author": {
        "name": "Ricardo Crudo",
        "email": "ricardo.crudo@gmail.com",
        "time": "Sat May 30 20:03:01 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Jun 01 16:18:30 2020"
      },
      "message": "Enable build for different c libraries\n\nThe open_memstream.c was using GLIBC macro definition to test if the\nlibrary is building on a Linux box. This makes impossible to build\ntinycbor against other C libraries, as musl for example.\n\nSigned-off-by: Ricardo Crudo \u003cricardo.crudo@gmail.com\u003e\n"
    },
    {
      "commit": "e608465164f3886541f3a0fcacbb6b7b31888b5a",
      "tree": "6c0ea7e18ba1dcd5aa8fbe6ef160cb7fc744b8b1",
      "parents": [
        "e373de2067414379f5ba6fcc1df5b1c2cdb89ecb"
      ],
      "author": {
        "name": "Maciej Jurczak",
        "email": "mjurczak@gmail.com",
        "time": "Sun Feb 16 10:10:36 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Feb 18 18:58:33 2020"
      },
      "message": "Fixed a typo in cbor_value_is_byte_string documentation\n"
    },
    {
      "commit": "e373de2067414379f5ba6fcc1df5b1c2cdb89ecb",
      "tree": "3df80d4e70f7516212a054933913479abfbe46d7",
      "parents": [
        "ef289000e162d8ba95878d38bc09a5133edd5a07"
      ],
      "author": {
        "name": "Hamilton Chapman",
        "email": "hamchapman@gmail.com",
        "time": "Fri Feb 07 12:46:01 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 10 17:31:00 2020"
      },
      "message": "Fix tag registry documentation by formatting the table rows correctly\n"
    },
    {
      "commit": "1a43b45ed97fa121f95c985e82cc85dc4a2ff53a",
      "tree": "19ac287adb08591046b218f1d33f302f58f948a9",
      "parents": [
        "8acb09f5b0f7e34bec1d7e6968d433cc7bfb8eb7"
      ],
      "author": {
        "name": "Svyatoslav Phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sun Feb 09 14:52:42 2020"
      },
      "committer": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sun Feb 09 14:52:42 2020"
      },
      "message": "string pretty-print improved\n\nstring got plain old C output format to avoid confusion e.g. \"true\" string with CBOR true value\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "8acb09f5b0f7e34bec1d7e6968d433cc7bfb8eb7",
      "tree": "085d64880a46da1abf14ef5df9da92bc544051d5",
      "parents": [
        "722f6496c38efcea32571c4d80c5a1c7d7331abd"
      ],
      "author": {
        "name": "Svyatoslav Phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sun Feb 09 14:40:39 2020"
      },
      "committer": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sun Feb 09 14:51:07 2020"
      },
      "message": "bytestring output pretty-print improved\n\nbytestring got escaped hex string literal output format to not to confuse e.g. \"\\x11\" bytestring with 11 integer\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "722f6496c38efcea32571c4d80c5a1c7d7331abd",
      "tree": "3a0c6829fa5c4f190e1a9808e0b7e2fedd1685b8",
      "parents": [
        "467b0ebc550479f6d7901c8b00e482f2558df085"
      ],
      "author": {
        "name": "Svyatoslav Phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sun Feb 09 14:49:31 2020"
      },
      "committer": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sun Feb 09 14:49:31 2020"
      },
      "message": "indentation typo fixed\n\nprintf s.b. used for indentation because no newline at end is needed\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "467b0ebc550479f6d7901c8b00e482f2558df085",
      "tree": "63feb77597c15ecdd995beb31c30807aa8a14bcf",
      "parents": [
        "ef289000e162d8ba95878d38bc09a5133edd5a07"
      ],
      "author": {
        "name": "Svyatoslav Phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sun Feb 09 14:30:20 2020"
      },
      "committer": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sun Feb 09 14:30:20 2020"
      },
      "message": "check app arguments in more strict manner\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "ef289000e162d8ba95878d38bc09a5133edd5a07",
      "tree": "ee6a40e36eba94af535b4bfac805219771d8fcba",
      "parents": [
        "1300d8b71f69d2f4e5f5fc6ea92283ef3fb010f9"
      ],
      "author": {
        "name": "Mathieu",
        "email": "limpkin@limpkin.fr",
        "time": "Thu Jan 30 07:40:18 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Jan 30 15:49:31 2020"
      },
      "message": "Fix warning: __cplusplus / __cpp_static_assert is not defined\n\ncompilersupport_p.h : __cplusplus / __cpp_static_assert is not defined\r\n\r\nSigned-off-by: Mathieu Stephan \u003ccontributors@themooltipass.com\u003e"
    },
    {
      "commit": "1300d8b71f69d2f4e5f5fc6ea92283ef3fb010f9",
      "tree": "173222e0e310c8580636343f7cbced2cd9d15dcc",
      "parents": [
        "2b1105eb8b19dca432d94961ea36d1725aa0dbae"
      ],
      "author": {
        "name": "Mathieu",
        "email": "limpkin@limpkin.fr",
        "time": "Thu Jan 30 07:38:36 2020"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Jan 30 15:49:31 2020"
      },
      "message": "Fix warning: initialization discards \u0027const\u0027 qualifier from pointer target type\n\ncbortojson.c: initialization discards \u0027const\u0027 qualifier from pointer target type [-Wdiscarded-qualifiers]\r\n\r\nSigned-off-by: Mathieu Stephan \u003ccontributors@themooltipass.com\u003e"
    },
    {
      "commit": "2b1105eb8b19dca432d94961ea36d1725aa0dbae",
      "tree": "c14ddeb01cb9980793c90583f008b8681795e66a",
      "parents": [
        "755f9ef932f9830a63a712fd2ac971d838b131f1"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Nov 13 20:23:16 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Nov 13 20:23:16 2019"
      },
      "message": "Fix version numbers for a possible 0.5.4 release\n"
    },
    {
      "commit": "755f9ef932f9830a63a712fd2ac971d838b131f1",
      "tree": "44aeea52366d3bf2d281a2cb10a3bbdf1dc4b465",
      "parents": [
        "1cc264a3fc5930950d6c5974014ae88948ed5099"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Jan 15 17:51:28 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Oct 22 15:11:21 2019"
      },
      "message": "Parser: validate that maps have both key and value items\n\nIf a map end (Break byte) occurs before we\u0027ve read the concrete item for\nthe value, then the map is invalid.\n\nFixes #167\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "1cc264a3fc5930950d6c5974014ae88948ed5099",
      "tree": "d6169b915c295df50c2283d3cd081da5dc6c92f5",
      "parents": [
        "d2dd95cb8841d88d5a801e3ef9c328fd6200e7bd"
      ],
      "author": {
        "name": "elie-elkhoury",
        "email": "36664499+elie-elkhoury@users.noreply.github.com",
        "time": "Wed Oct 09 10:31:45 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Oct 10 16:34:43 2019"
      },
      "message": "Update cborencoder.c documentation\n\nFixed the error checking example proposed in the comments/documentation at the beginning of the file.\nChanged occurrences of `if(!err)` to `if(err)`, and `cbor_assert(err)` to `cbor_assert(!err)`.\n\nSigned-off-by: Elie El Khoury \u003celiekhoury@hotmail.de\u003e\n"
    },
    {
      "commit": "d2dd95cb8841d88d5a801e3ef9c328fd6200e7bd",
      "tree": "d6483594780092fc7e151491be4d84a259f9ed07",
      "parents": [
        "878eb01b96c573e353b217439c0f418f69c2ca04"
      ],
      "author": {
        "name": "Sergio Martins",
        "email": "sergio.martins@kdab.com",
        "time": "Wed Jun 05 20:55:45 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Jun 06 20:34:49 2019"
      },
      "message": "Fix compilation error in the documentation\n"
    },
    {
      "commit": "878eb01b96c573e353b217439c0f418f69c2ca04",
      "tree": "0162d23c43cdd8cd35c4ee2dfc313bca68d0f0c5",
      "parents": [
        "0362274505cb68c0f42678b8142589d533acb821"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Apr 04 17:16:06 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Apr 04 17:18:16 2019"
      },
      "message": "Tests: remove useless comment\n\nIt\u0027s implemented.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "0362274505cb68c0f42678b8142589d533acb821",
      "tree": "60756626a4629f40dedb9a3d994a90ad0840ffb4",
      "parents": [
        "57b66a83531d57bd3deb0a4b2ed917278ee7c357"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Mar 05 23:28:11 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Mar 06 17:50:04 2019"
      },
      "message": "Parser: apply the same memory-check update\n\nSee previous commit for more details. This just applies the same\ntechnique using malloc/mmap to the the rest of the parser tests.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "57b66a83531d57bd3deb0a4b2ed917278ee7c357",
      "tree": "8af4958e9d5ec67bfd974ad8d229b0d1709068a4",
      "parents": [
        "49ef3f89ac7d0beb439efa6c1316b954bc6ac84c"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Mar 05 20:49:38 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Mar 06 04:01:37 2019"
      },
      "message": "Validation: fix out-of-bounds access when content ends in a string\n\nWe can only validate_number() if we know that we have a number to\nvalidate in the first place. If we\u0027ve reached the end of our string, the\ncontent that follows is not necessarily a number (it could be a Break\nbyte). More importantly, we could reach the end of the buffer.\n\nThis issue was masked by the way we provided data to the parser. It\nalways came from read-only memory becausee of QByteArray::fromRawData(),\nso valgrind never caught any issues. Using QByteArray directly wouldn\u0027t\nhave helped because it always inserts a terminating null byte, which\nalways validates as a correct number (unsigned 0) and fails to trigger\nvalgrind.\n\nSo we need to use malloc() directly to make Valgrind complain. And there\nwas already a test that did:\n\n\u003d\u003d26543\u003d\u003d Invalid read of size 1\n\u003d\u003d26543\u003d\u003d    at 0x483EA10: memmove (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)\n\u003d\u003d26543\u003d\u003d    by 0x43CEEA: read_bytes_unchecked (cborinternal_p.h:239)\n\u003d\u003d26543\u003d\u003d    by 0x43CFEC: extract_number_checked (cborinternal_p.h:286)\n\u003d\u003d26543\u003d\u003d    by 0x43D3E9: validate_number (cborvalidation.c:304)\n\u003d\u003d26543\u003d\u003d    by 0x43DC7B: validate_value (cborvalidation.c:551)\n\u003d\u003d26543\u003d\u003d    by 0x43DE8C: cbor_value_validate (cborvalidation.c:645)\n\u003d\u003d26543\u003d\u003d    by 0x4328D2: tst_Parser::strictValidation() (tst_parser.cpp:1637)\n\u003d\u003d26543\u003d\u003d    by 0x434632: tst_Parser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (tst_parser.moc:291)\n\u003d\u003d26543\u003d\u003d    by 0x4C0B36D: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2310)\n\u003d\u003d26543\u003d\u003d    by 0x48673E9: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.h:122)\n\u003d\u003d26543\u003d\u003d    by 0x4860256: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:922)\n\u003d\u003d26543\u003d\u003d    by 0x4860D4B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1121)\n\u003d\u003d26543\u003d\u003d  Address 0x61c4db1 is 0 bytes after a block of size 1 alloc\u0027d\n\u003d\u003d26543\u003d\u003d    at 0x483777F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)\n\u003d\u003d26543\u003d\u003d    by 0x403891: ParserWrapper::allocateMemory(unsigned long) (tst_parser.cpp:181)\n\u003d\u003d26543\u003d\u003d    by 0x436898: ParserWrapper::init(QByteArray const\u0026) (tst_parser.cpp:126)\n\u003d\u003d26543\u003d\u003d    by 0x432712: tst_Parser::strictValidation() (tst_parser.cpp:1634)\n\u003d\u003d26543\u003d\u003d    by 0x434632: tst_Parser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (tst_parser.moc:291)\n\u003d\u003d26543\u003d\u003d    by 0x4C0B36D: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2310)\n\u003d\u003d26543\u003d\u003d    by 0x48673E9: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.h:122)\n\u003d\u003d26543\u003d\u003d    by 0x4860256: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:922)\n\u003d\u003d26543\u003d\u003d    by 0x4860D4B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1121)\n\u003d\u003d26543\u003d\u003d    by 0x4862083: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1465)\n\u003d\u003d26543\u003d\u003d    by 0x4862C14: QTest::qRun() (qtestcase.cpp:1903)\n\u003d\u003d26543\u003d\u003d    by 0x48626C3: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1792)\n\u003d\u003d26543\u003d\u003d\nPASS   : tst_Parser::strictValidation(bytearray-0)\n\nThis commit goes further and makes it so an out-of-bounds access will\ncause a pagefault.\n\nFixes #156.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "49ef3f89ac7d0beb439efa6c1316b954bc6ac84c",
      "tree": "9e2d1ab93b395d896fe12e4f630db0f793005a0b",
      "parents": [
        "587ff539ba55967d35339c4aa3fc169d036a6e88"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Mar 05 23:16:32 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Mar 06 03:59:25 2019"
      },
      "message": "Pretty: fix use of uninitialised variable\n\nThe string chunk getter doesn\u0027t set ptr if there was an error\ndecoding. Instead, we need to deal with the error first.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "587ff539ba55967d35339c4aa3fc169d036a6e88",
      "tree": "47846b8954f2514ed6f01eb56b81fb6b0e11e857",
      "parents": [
        "d75f2ebf65bce22c82d21c54f346e437ea360818"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Mar 05 22:16:58 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Mar 05 23:13:00 2019"
      },
      "message": "Update Travis CI to Ubuntu Xenial\n\nThis updates to Qt 5.12, since Stephan has a build for that in his\nPPA. But we need to turn off RDRNAD support for the Valgrind build, as\nit doesn\u0027t understand that instruction.\n\nThis also downgrades GCC to 5.4, which is what comes by default with\nTravis CI.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "d75f2ebf65bce22c82d21c54f346e437ea360818",
      "tree": "5aeaa672ab0fe3b5663ae437b5afcce6b58261ad",
      "parents": [
        "7b08a99b9ed5e90334dfab13072a7ab28d69b7d7"
      ],
      "author": {
        "name": "Pedro Oliveira",
        "email": "pelco89@gmail.com",
        "time": "Fri Jan 11 00:35:29 2019"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Jan 11 20:11:33 2019"
      },
      "message": "Fixed minor error in the example code.\n\nSigned-off-by: pelco \u003cpelco89@gmail.com\u003e\n"
    },
    {
      "commit": "7b08a99b9ed5e90334dfab13072a7ab28d69b7d7",
      "tree": "5dc6a2b6b4aa53299ce71a020db4fd35f5b9af35",
      "parents": [
        "3c910cf1446d7b33468a1b4ecd8083637b1d49b1"
      ],
      "author": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Thu Dec 06 22:02:06 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Dec 06 22:44:17 2018"
      },
      "message": "Make AppVeyor test suit run silent as in Travis\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "3c910cf1446d7b33468a1b4ecd8083637b1d49b1",
      "tree": "3c1f117bcf8787a071b694557dbddc0bca1059a4",
      "parents": [
        "e9c6ebe9d6b62f9da17f0b8da1d8d5e07ac3e961"
      ],
      "author": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Thu Dec 06 18:38:09 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Dec 06 20:24:22 2018"
      },
      "message": "Run check silently in Travis\n\nRun unittest in Travis in the silent mode to avoid Travis log cluttering\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "e9c6ebe9d6b62f9da17f0b8da1d8d5e07ac3e961",
      "tree": "4753b98f5772eb62574dffcc9f571f5b4a085f8e",
      "parents": [
        "1db99f95f20637bea19d61f8108526aade1fb8cc"
      ],
      "author": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Mon Dec 03 18:28:09 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 04 23:15:32 2018"
      },
      "message": "eliminating misleading messages in case .config file not yet created\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "1db99f95f20637bea19d61f8108526aade1fb8cc",
      "tree": "ff97adc06f9d14ef67e37c8aad7dba4b719c8e9e",
      "parents": [
        "2b267847efbd031d41d3cdca904a9d3069347af4"
      ],
      "author": {
        "name": "Svyatoslav Phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Tue Oct 23 12:10:17 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Oct 23 17:47:40 2018"
      },
      "message": "typo in dumprecursive return type\n\nshould be CborErrorr rather than bool"
    },
    {
      "commit": "2b267847efbd031d41d3cdca904a9d3069347af4",
      "tree": "553f7d800fa178f4b60e4f8ea7a52a53d868472c",
      "parents": [
        "37d4ba453ae69c11a04d6a36d57027cd9b174cc6"
      ],
      "author": {
        "name": "Svyatoslav Phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sat Oct 13 19:06:15 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Oct 13 23:26:48 2018"
      },
      "message": "Typo fixed in stdlib fread(...) usage\n\nfread(...) function returns the number of items read so far, not number of bytes, ergo, reading one st.st_size sized item produces 1 on success and 0 on failure.\nPossibly fixing issue #77\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "37d4ba453ae69c11a04d6a36d57027cd9b174cc6",
      "tree": "89d6317ddb097e08bc5145a2eaef20a496f03946",
      "parents": [
        "3f0a830fadf5803a0bcc4ee30349108b259a344f"
      ],
      "author": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sat Oct 13 10:43:25 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Oct 13 16:51:43 2018"
      },
      "message": "Protect macro argument expansion using parentheses\n\nFixes #141\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "3f0a830fadf5803a0bcc4ee30349108b259a344f",
      "tree": "ac076d75a9a2bafe3db4d9538b448448cad70dda",
      "parents": [
        "d072f461e995db64a9763b29a64f29c388b2a4e9"
      ],
      "author": {
        "name": "phirsov",
        "email": "41143811+phirsov@users.noreply.github.com",
        "time": "Sat Oct 13 10:42:43 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Oct 13 16:51:43 2018"
      },
      "message": "Fix off-by-one causing buffer overflow in open_memstream\n\nFixes #140\n\nSigned-off-by: phirsov \u003c41143811+phirsov@users.noreply.github.com\u003e\n"
    },
    {
      "commit": "d072f461e995db64a9763b29a64f29c388b2a4e9",
      "tree": "4e6c4c9e5d342375e5c85940491b9164c4c275a3",
      "parents": [
        "2421690d44571051feabf45076a430f6367ccb98"
      ],
      "author": {
        "name": "Fabrice Fontaine",
        "email": "fontaine.fabrice@gmail.com",
        "time": "Thu Sep 20 17:23:54 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 21 16:43:08 2018"
      },
      "message": "fix undefined encode_half in json2cbor\n\nencode_half has been moved from compilersupport_p.h to cborinternal_p.h\nin commit bfc40dcf909f1998d7760c2bc0e1409979d3c8cb so include this file\nin json2cbor to avoid the following build failure:\n\n/home/buildroot/autobuild/run/instance-0/output/host/bin/microblazeel-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS\u003d64 -I./src -std\u003dgnu99 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS\u003d64  -Os    -c -o tools/json2cbor/json2cbor.o tools/json2cbor/json2cbor.c\ntools/json2cbor/json2cbor.c: In function \u0027decode_json_with_metadata\u0027:\ntools/json2cbor/json2cbor.c:295:50: warning: implicit declaration of function \u0027encode_half\u0027 [-Wimplicit-function-declaration]\n                                          (half \u003d encode_half(v), cbor_encode_half_float(encoder, \u0026half));\n                                                  ^~~~~~~~~~~\n/home/buildroot/autobuild/run/instance-0/output/host/bin/microblazeel-linux-gcc -o bin/json2cbor  tools/json2cbor/json2cbor.o lib/libtinycbor.so -lcjson -lm\ntools/json2cbor/json2cbor.o: In function `decode_json_with_metadata\u0027:\n(.text+0xe54): undefined reference to `encode_half\u0027\ncollect2: error: ld returned 1 exit status\nMakefile:151: recipe for target \u0027bin/json2cbor\u0027 failed\n\nFixes:\n - http://autobuild.buildroot.net/results/afd8d24f2a4e501264abff618cf421d4bd088ebf\n\nSigned-off-by: Fabrice Fontaine \u003cfontaine.fabrice@gmail.com\u003e\n"
    },
    {
      "commit": "2421690d44571051feabf45076a430f6367ccb98",
      "tree": "9f2108bd52bead675b5f9606c7d7a2afa5ac3749",
      "parents": [
        "27d913e0d5835c9727f1a9c35db61ed6c4d04ab7"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Sep 16 16:43:56 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Sep 21 16:41:57 2018"
      },
      "message": "Fix #137: off-by-one error in UTF-8 decoding\n\nI ported this from code I had written for Qt, where the subtraction was\ncorrect. Qt\u0027s code is roughly:\n\n    uchar b \u003d *src++;\n    ...\n    int bytesAvailable \u003d Traits::availableBytes(src, end);\n    if (Q_UNLIKELY(bytesAvailable \u003c charsNeeded - 1)) {\n\nWhich means src was advanced by the time we call Traits::availableBytes,\nmeaning that call returns the number of continuation bytes only. Our\ncode was:\n\n    ptrdiff_t n \u003d end - *buffer;\n    ...\n    uc \u003d *(*buffer)++;\n    ...\n    if (n \u003c charsNeeded - 1)\n\nWhich means our n is the total number of bytes, including the first\nbyte.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "27d913e0d5835c9727f1a9c35db61ed6c4d04ab7",
      "tree": "6ef92aa0ab1b874c8bc8446fa66d4fdaadd78650",
      "parents": [
        "d94ca09aa91f5b3c581527aa8bca179a82b79874"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Sep 09 16:24:40 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Sep 09 16:24:40 2018"
      },
      "message": "Update version number for a possible but unlikely 0.5.3 release\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "d94ca09aa91f5b3c581527aa8bca179a82b79874",
      "tree": "b601a87659f6526e577e418562f04fc50813c59b",
      "parents": [
        "bfc40dcf909f1998d7760c2bc0e1409979d3c8cb"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Sep 09 05:33:57 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Sep 09 05:33:57 2018"
      },
      "message": "Install the tinycbor-version.h header.\n\nFixes #136.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "bfc40dcf909f1998d7760c2bc0e1409979d3c8cb",
      "tree": "e09b3490c6e2afe7da448d32e0431848f112784d",
      "parents": [
        "88943666c4e45200acc1edeb59e895dde66dddad"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Jul 18 03:19:14 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Aug 14 04:03:31 2018"
      },
      "message": "Move the floating point code to cborinternal_p.h\n\n... and put it behind #ifndef CBOR_NO_FLOATING_POINT.\n\nThe functions were not really compiler support, but are internal\nfunctionality of TinyCBOR. This commit also puts both the \u003cmath.H\u003e and\n\u003cfloat.h\u003e headers behind an #if, so constrained systems without floating\npoint support won\u0027t enable it.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "88943666c4e45200acc1edeb59e895dde66dddad",
      "tree": "3c886ce670da65712d31827d27656ebfc4c00699",
      "parents": [
        "4d15639645110d8c8b07c17548943a69f6d4d4da"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Jul 18 04:12:43 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Aug 14 04:03:31 2018"
      },
      "message": "Properly link the shared libtinycbor.so to -lm\n\nThe hosted version makes use of math functions (usually, we don\u0027t test\nthat CBOR_NO_FLOATING_POINT is defined).\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "4d15639645110d8c8b07c17548943a69f6d4d4da",
      "tree": "1107cb77b06e7567611336da455bf472668c3bba",
      "parents": [
        "f29859da336c844b87bddaff6dea3fee2409f162"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Jul 18 03:37:25 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Aug 14 04:03:31 2018"
      },
      "message": "Don\u0027t compile bin/cbordump in freestanding builds\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "f29859da336c844b87bddaff6dea3fee2409f162",
      "tree": "1d6926331e47d33fbfe56a33634f493ac5e732c5",
      "parents": [
        "cf222ff9862d2151d39d59c4f8546c497589490e"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 18:33:50 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 18:48:31 2018"
      },
      "message": "Update our Qt 5.9 installation to 5.9.6\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "cf222ff9862d2151d39d59c4f8546c497589490e",
      "tree": "f0a54c37736edda61517c0da4052ed742240c012",
      "parents": [
        "5356c1de233617e8261da4d2e9a8af213ab6e229"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 18:25:28 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 18:48:31 2018"
      },
      "message": "Make the c90 test pass on Mac and on Windows\n\nOn the Mac, the Clang compiler complains about our (required) use of\nuint64_t, which is typedef\u0027ed to long long. That type didn\u0027t exist in\nC90.\n\nOn Windows, I forgot the CONFIG +\u003d console, resulting in\n\n error LNK2019: unresolved external symbol _WinMain@16 referenced in function \"int __cdecl invoke_main(void)\" (?invoke_main@@YAHXZ)\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "5356c1de233617e8261da4d2e9a8af213ab6e229",
      "tree": "70aa8e22f9745d89bab597ea09d2ea4e542e19aa",
      "parents": [
        "85e1c18f41763f59030485d42c72fc7ea5436e7d"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 18:16:12 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 18:16:12 2018"
      },
      "message": "Oops, enable the test too..\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "85e1c18f41763f59030485d42c72fc7ea5436e7d",
      "tree": "55318c533b1d68f96b6b3311cddb395ad29323a0",
      "parents": [
        "d2603496b3ee925a3f68bf21069825f0682b0665"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 18:09:46 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 18:10:14 2018"
      },
      "message": "Add a set of tests to ensure that the cbor.h remains C90-compatible\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "d2603496b3ee925a3f68bf21069825f0682b0665",
      "tree": "df476510843c8d707ed6dc5d2563bd36df478a1d",
      "parents": [
        "9e226103da7977047633de532dff7ec0d6e7b1fa"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 17:57:22 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Jul 08 17:57:22 2018"
      },
      "message": "Fix *some* C89/C90 issues in the code\n\nThis fixes the issues in all the headers (even in the private headers),\nbut not all of them in the .c files. I only fixed those that didn\u0027t make\nthe code look much uglier or those for which GCC complains with\n-std\u003dc90. The compiler only warns about mixed mixed variable\ndeclarations and code, unless you use -pedantic-errors.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "9e226103da7977047633de532dff7ec0d6e7b1fa",
      "tree": "97a687eca8484ff575ba307c3db996dddf77b65a",
      "parents": [
        "412e40fcb3f4dcbef2f23f40b2676023d1f7355d"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri May 25 13:50:53 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Jun 01 00:22:32 2018"
      },
      "message": "Improve our detection of floating-point that are integers\n\nTurns out that we were relying on undefined behaviour when doing\n\n    (uint64_t)fabs(val) \u003d\u003d fabs(val)\n\nThis problem was noted when running our test data on an AArch64 build.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "412e40fcb3f4dcbef2f23f40b2676023d1f7355d",
      "tree": "1ab8a15ba74de1719089e6005f48b61c000e1c62",
      "parents": [
        "f1b3258276937846d93c62e731abac8d766a59f8"
      ],
      "author": {
        "name": "Koen Zandberg",
        "email": "koen@bergzand.net",
        "time": "Mon May 28 08:00:29 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon May 28 16:35:28 2018"
      },
      "message": "pretty: Add ifdefs for float support\n\nAdds ifdefs around the float handling to return an CborErrorUnknownType\nif compiled without floating point support\n\nSigned-off-by: Koen Zandberg \u003ckoen@bergzand.net\u003e\n"
    },
    {
      "commit": "f1b3258276937846d93c62e731abac8d766a59f8",
      "tree": "80c531684277761128a99adf4bef8a1c99e36d25",
      "parents": [
        "df564822b147095530c53d2b87fb5e75ca8b0fa1"
      ],
      "author": {
        "name": "Koen Zandberg",
        "email": "koen@bergzand.net",
        "time": "Mon May 28 07:51:35 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon May 28 16:33:15 2018"
      },
      "message": "validation: fix undef var with half float disabled\n\nSigned-off-by: Koen Zandberg \u003ckoen@bergzand.net\u003e\n"
    },
    {
      "commit": "df564822b147095530c53d2b87fb5e75ca8b0fa1",
      "tree": "f11fe11b12458fefe55bedb480c63c787bcefcd4",
      "parents": [
        "fac1e5761ea76c81e971641fffb11ce29ce8ec05"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu May 10 04:04:14 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon May 28 02:02:33 2018"
      },
      "message": "Add more byte order detection code\n\nSuggested in https://sourceforge.net/p/predef/wiki/Endianness/ and also\nfound by looking into glibc\u0027s \u003cendian.h\u003e. Plus some recommendation from\nother people.\n\nThis fixed the build on INTEGRITY.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "fac1e5761ea76c81e971641fffb11ce29ce8ec05",
      "tree": "a37660cb45181f7a4439cdae20e622aa24ed390d",
      "parents": [
        "81fbe2ee1ca8816f521922cec4fbc9d67e43a144"
      ],
      "author": {
        "name": "Koen Zandberg",
        "email": "koen@bergzand.net",
        "time": "Thu May 24 09:37:52 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri May 25 14:44:07 2018"
      },
      "message": "validation: Fix tag array for 8 bit architectures\n\nCompilation for 8 bit architectures fails due to a bit shift larger than\n8 for a uint8_t data type. This commit changes the data type to uint32_t\nfor the tag array.\n\nSigned-off-by: Koen Zandberg \u003ckoen@bergzand.net\u003e\n"
    },
    {
      "commit": "81fbe2ee1ca8816f521922cec4fbc9d67e43a144",
      "tree": "b4d46fb7e00bbf8c9459e74f271f45bf5ce48cac",
      "parents": [
        "66f0e785fdea68ed294f9d52fcbfb3fb970468ae"
      ],
      "author": {
        "name": "Koen Zandberg",
        "email": "koen@bergzand.net",
        "time": "Thu May 24 09:48:24 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu May 24 16:53:26 2018"
      },
      "message": "Change flag type to uint32_t for parser flags\n\nThe argument for the parser flags should have uint32_t as type to\nprevent overflow on platforms where an int is not 32 bit wide.\n"
    },
    {
      "commit": "66f0e785fdea68ed294f9d52fcbfb3fb970468ae",
      "tree": "99783b96ecd6f387ca8887588e0884440f40279a",
      "parents": [
        "222845369c271783442088ea4ad8be235ad9b5c5"
      ],
      "author": {
        "name": "Koen Zandberg",
        "email": "koen@bergzand.net",
        "time": "Thu May 24 08:02:33 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu May 24 16:48:21 2018"
      },
      "message": "validation: Fix brace mismatch with float disabled\n"
    },
    {
      "commit": "222845369c271783442088ea4ad8be235ad9b5c5",
      "tree": "146165790c1e6d4c9807c7ff2174b581ff111178",
      "parents": [
        "c9059d9e33bfd5aff7a903c756427282f9544b61"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue May 08 22:49:32 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed May 09 15:45:44 2018"
      },
      "message": "Attempt at detecting a few more endiannesses\n\nOn INTEGRITY, the __BYTE_ORDER__ macro isn\u0027t defined. So fall back to\nthe processor macros.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "c9059d9e33bfd5aff7a903c756427282f9544b61",
      "tree": "3f026a0f5e04492ac90e7178229d7f4f6715c141",
      "parents": [
        "3642f49d62348bcdb1b3320bb55332cddd54158b"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Mar 13 22:07:54 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Mar 31 17:50:24 2018"
      },
      "message": "Print the diff of the library sizes in Travis\n\nSo we can tell from the output if the library is increasing or not.\n\nThis also fixes a silly bug in testing non-tags, introduced by\n0170ebdcdc8886faa54f43351ff639117de98533.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "3642f49d62348bcdb1b3320bb55332cddd54158b",
      "tree": "38513a46f72833870b714224a282b262ae389436",
      "parents": [
        "ae64a3d9da39f3bf310b9a7b38427c096d8bcd43"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Mar 31 17:03:28 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Mar 31 17:03:28 2018"
      },
      "message": "Update versions for TinyCBOR 0.5.2\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "ae64a3d9da39f3bf310b9a7b38427c096d8bcd43",
      "tree": "6daeb162d0fb956389de0beedfaa8c678c54385f",
      "parents": [
        "73d0a9ce7751988da709a1afbabba4748eea77a2"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Mar 31 16:46:39 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Mar 31 16:46:39 2018"
      },
      "message": "Use 32-bit x86 for MSVC 2015, for completeness\n\nWe had no 32-bit build.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "73d0a9ce7751988da709a1afbabba4748eea77a2",
      "tree": "e050244dc4db814996e14338b5581f676d048733",
      "parents": [
        "8606611e53e4228a41f0b53217554bff44434bf7"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Mar 13 22:08:31 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Mar 31 16:40:28 2018"
      },
      "message": "Fix json2cbor (cJSON) build\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "8606611e53e4228a41f0b53217554bff44434bf7",
      "tree": "fba931174516e1b3895fbe65d1da9811d556db5e",
      "parents": [
        "70aba6ba51881e5b8d108c105a17ed9cdee6bc30"
      ],
      "author": {
        "name": "Konstantin Yegupov",
        "email": "kyegupov4@gmail.com",
        "time": "Sun Mar 18 19:11:51 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Mar 31 16:39:10 2018"
      },
      "message": "Update gcc flags to build json2cbor with gcc 4.4.7 (used in CentOS 6)\n\nSigned-off-by: Konstantin Yegupov \u003ckyegupov4@gmail.com\u003e\n"
    },
    {
      "commit": "70aba6ba51881e5b8d108c105a17ed9cdee6bc30",
      "tree": "c237ec6cfff4a17992118f28ab5e52b299cb4411",
      "parents": [
        "c1ae521511299ea93a73a5f6fcbda1cbddd9f511"
      ],
      "author": {
        "name": "Andreas Zisowsky",
        "email": "zisowsky@lynxtechnology.com",
        "time": "Mon Mar 19 10:51:35 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Mar 19 15:17:53 2018"
      },
      "message": "Fix compile error on Windows x86.\n\nVisual Studio expects the __fastcall attribute\nbetween return type and function name.\n\nSigned-off-by: Andreas Zisowsky \u003czisowsky@lynxtechnology.com\u003e\n"
    },
    {
      "commit": "c1ae521511299ea93a73a5f6fcbda1cbddd9f511",
      "tree": "addc7dcd56092bdb591c131c552b57b2822f48d6",
      "parents": [
        "c11324ec91950cd06ef5587cdf2340e7ce4ab811"
      ],
      "author": {
        "name": "Mårten Nordheim",
        "email": "Morten242@gmail.com",
        "time": "Tue Feb 06 08:42:16 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Feb 07 18:43:40 2018"
      },
      "message": "Fix typo in documentation\n\nSigned-off-by: Mårten Nordheim \u003cMorten242@gmail.com\u003e\n"
    },
    {
      "commit": "c11324ec91950cd06ef5587cdf2340e7ce4ab811",
      "tree": "d97574d076e35a40ebbeaebf382ef708aec9fa0c",
      "parents": [
        "d8f8e8c57b67524dfca5395899aa76fdc9f5221c"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Dec 28 11:59:07 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Feb 07 18:40:52 2018"
      },
      "message": "Disable timestamping in Doxygen\n\nSo the output is reproducible.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "d8f8e8c57b67524dfca5395899aa76fdc9f5221c",
      "tree": "c425e052cca1ec56b06d81b2bdc4e2841e3b0701",
      "parents": [
        "f5a172b976de07f7bb37d2d24149d6c7a1e512e1"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Feb 06 02:17:41 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Feb 07 18:40:52 2018"
      },
      "message": "Docs: Simplify the Doxyfile\n\nFollowing Edward Welbourne\u0027s recommendation, first we remove the comments:\n  $ doxygen -s -u\n\nThen we compare to the stock Doxyfile without comments (doxygen -s -g)\nand save only what\u0027s to our file:\n  $ doxygen -s -g - | comm -13 Doxyfile \u003e Doxyfile.new\n  $ mv Doxyfile.new Doxyfile\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "f5a172b976de07f7bb37d2d24149d6c7a1e512e1",
      "tree": "bbe3648867f909c999f5c0cfbbe29ee14af3f594",
      "parents": [
        "cd4430ece74ac7013370eb3afa02d5468f2562fd"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 05 22:53:14 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Feb 06 02:02:52 2018"
      },
      "message": "Docs and comments updates\n\nMany thanks to Edward Welbourne for pointing them all out.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "cd4430ece74ac7013370eb3afa02d5468f2562fd",
      "tree": "9a8afffa4218aa140d03e71669e4a9603660986b",
      "parents": [
        "7a09e63fa0c5d0a0d0b7d149aa12ba092f222605"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 05 22:51:19 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Feb 06 02:02:52 2018"
      },
      "message": "json2cbor: Minor update for clarity\n\nAvoids a magic constant in the code.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "7a09e63fa0c5d0a0d0b7d149aa12ba092f222605",
      "tree": "21314c8dae7817665a74db11971092e74336dabe",
      "parents": [
        "17aec2aa68323066ec51957984c851cb16428569"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 05 22:50:42 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 05 23:07:12 2018"
      },
      "message": "json2cbor: don\u0027t crash if realloc() returns false\n\nperror() doesn\u0027t exist. It\u0027s not like Perl\u0027s die().\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "17aec2aa68323066ec51957984c851cb16428569",
      "tree": "1123671c0cbb098be0d830f29486c8479de460ba",
      "parents": [
        "1f84b8361ad52427eb0976ebaad78e87776641b4"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 05 22:11:53 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 05 23:06:47 2018"
      },
      "message": "CborToJson: fix memory leak in case fprintf fails\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "1f84b8361ad52427eb0976ebaad78e87776641b4",
      "tree": "a524bac38464a8885c9bea39f717572933b6422f",
      "parents": [
        "8c940d264a9b62375b04e5c3215301036144abe4"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 05 22:36:33 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Feb 05 23:06:30 2018"
      },
      "message": "Tests: fix the checking if the current test failed\n\nThe `compareFailed` variable was never initialised or set to anything.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "8c940d264a9b62375b04e5c3215301036144abe4",
      "tree": "625c9439c17cd274f7f7ddccf035349972393468",
      "parents": [
        "94a4edbbc74c7317ca42a04628151871bf6e0867"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Feb 04 16:58:43 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Feb 04 23:50:07 2018"
      },
      "message": "Pretty: fix typo in enum name\n\nWill keep the misspelt name for a few releases and remove later.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "94a4edbbc74c7317ca42a04628151871bf6e0867",
      "tree": "ca7c526bf2929a06126907dee11751dc43d2978f",
      "parents": [
        "0170ebdcdc8886faa54f43351ff639117de98533"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Feb 04 16:54:24 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Feb 04 16:59:11 2018"
      },
      "message": "Fix minor typo\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "0170ebdcdc8886faa54f43351ff639117de98533",
      "tree": "b61182f90b80231f42cbd99ad46cf6f250a0c1b8",
      "parents": [
        "803c048a8a32363efc4671379d0d5fdc8d428adb"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 23:01:23 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 23:01:23 2018"
      },
      "message": "Fix the docs script when operating with a tag, in Travis\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "803c048a8a32363efc4671379d0d5fdc8d428adb",
      "tree": "14c22b804e219b1513a2024321ea13719ef3799c",
      "parents": [
        "3cdb9c890b785fac25e68e5db19961cfbf49aba3"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 22:11:41 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 22:21:35 2018"
      },
      "message": "Update version numbers for 0.5.1 release\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "3cdb9c890b785fac25e68e5db19961cfbf49aba3",
      "tree": "26c4526aa8e96cfcab37a39b3c1a30b15b28cac1",
      "parents": [
        "301e263afb0b0d52bf38aaaa8d429131d5bba050"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Dec 28 01:29:33 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 22:21:35 2018"
      },
      "message": "Add a script to make docs in Travis\n\nThis also stores the current library sizes (in -Os / -Oz build modes)\nfor each branch,\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "301e263afb0b0d52bf38aaaa8d429131d5bba050",
      "tree": "66ccafcaa2dd873e2e99d313cd187fe90b86a65a",
      "parents": [
        "f2b75b87213fb88c39761b188fad629a39cc6a09"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 21:44:06 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 22:01:23 2018"
      },
      "message": "Update the ELF soname not to say \"libtinycbor.so.0\"\n\nSince we\u0027re not (yet) guaranteeing binary compatibility, let\u0027s use 0.5\nas the \"soversion\".\n\nThis changes the version number stored in the VERSION file so that the\nactual library file is \"libtinycbor.so.0.5.0\". As an indirect\nconsequence, the release will be tagged \"v0.5.0\", which sorts after\n\"v0.5-beta1\".\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "f2b75b87213fb88c39761b188fad629a39cc6a09",
      "tree": "d9f988bb69dcf17752b360e47089c0d469700ad0",
      "parents": [
        "5515a994341cfb4ef004ec2694b6d628f00ad358"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 21:28:10 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 21:43:49 2018"
      },
      "message": "Make it easier to build only the freestanding code\n\nFreestanding C, as opposed to hosted C (see the macro), is restricted to\na few C headers and usually lacks a libc. In our case, that means we\ncannot assume \u003cstdio.h\u003e and FILE* is present, but we do require\n\u003cstring.h\u003e (memcpy, memcmp).\n\nThis commit simply makes it easier for me to test that TinyCBOR still\ncompiles in freestanding mode. Eventually I need to test with an actual\nZephyr build (issue #40).\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "5515a994341cfb4ef004ec2694b6d628f00ad358",
      "tree": "19f137793e9c11cd13639f206bc407557fb3a3ec",
      "parents": [
        "2a38a95ca56435465985d0298d187d7890b4d39b"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Jan 27 04:30:21 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 20:04:05 2018"
      },
      "message": "Parser: remove the cbor_value_get_xxxx_string_chunk() API\n\nIt\u0027s really good, but I need to redesign it in order to support the\nchained buffers found in Zephyr[1][2] and Mynewt. I\u0027ll bring it back in\n0.6 when I introduce support for parsing directly from chained buffers\ntoo.\n\n[1] http://docs.zephyrproject.org/api/networking.html#network-buffers\n[2] https://github.com/zephyrproject-rtos/zephyr/blob/master/include/net/buf.h\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "2a38a95ca56435465985d0298d187d7890b4d39b",
      "tree": "39e75dd3a498cb37b986cff6560e8eb68ef20119",
      "parents": [
        "497066ee87dd54341adaa1195bf15ad11ee33b20"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 19:47:54 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 30 18:38:04 2018"
      },
      "message": "Parser: merge the break-handling code in enter_container()\n\nThere was a section of code that was mostly the same, dealing with the\npossibility of reading a Break (0xFF) as the next element in a map or\narray. The only difference was that preparse_next_value() also\ndecremented the item count for the current list.\n\nWe could have used that, but that would have meant a +1 on the list,\nwhich in turn lowers the number of possible elements from UINT32_MAX-1\nto UINT32_MAX-2. Not a big deal, but we can avoid it by just splitting\nto a new function and retaining tail-call optimisations.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "497066ee87dd54341adaa1195bf15ad11ee33b20",
      "tree": "b2238f047f17b050fbbc7058f0748089564fe1a8",
      "parents": [
        "1b9a6401ea3cf0ad569b782548d736f464635227"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Jan 12 03:37:09 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 23 18:36:41 2018"
      },
      "message": "Encoder: Fix off-by-one error encoding negative numbers\n\nThe documentation said we encoded the negative value equivalent to the\npassed absolute value. That means encode_number() requires the\nsubtraction.\n\nThis commit takes the opportunity to unit-test the rest of the integer\nAPI in the parser.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "1b9a6401ea3cf0ad569b782548d736f464635227",
      "tree": "ae51b03ff41b9a57c0152a1cbca334304f05c9bc",
      "parents": [
        "e5843df4119677b419d0ca21aba3253b53e083ec"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Jan 15 17:44:17 2018"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 23 18:36:25 2018"
      },
      "message": "JSON: Change the first number of the JSON conversion errors\n\nThis gives us a little more room to add validation errors when we have\nto keep binary compatibility.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "e5843df4119677b419d0ca21aba3253b53e083ec",
      "tree": "177bc8f5818dbc9f533d06e5b7e96dd762d4f0c6",
      "parents": [
        "f8514e3d0e5ebd1b6591bfc711eca4a5c66807d8"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Dec 18 04:17:35 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Jan 13 16:41:07 2018"
      },
      "message": "Tests: change a few more QCOMPARE to print the error message.\n\nCommit 36bdbfb854b0c75d8faeb7d15d0a542bbf3ec291 did not catch all cases.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "f8514e3d0e5ebd1b6591bfc711eca4a5c66807d8",
      "tree": "c612a0eb3644bc6c45e854c81a7efd41c58c9eef",
      "parents": [
        "cc2bfbb20954f0be9237624b53feca0e27e88f72"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 20:52:17 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Jan 13 16:41:07 2018"
      },
      "message": "Test Clang and release GCC builds in Travis\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "cc2bfbb20954f0be9237624b53feca0e27e88f72",
      "tree": "867c2deaf6317996337ac0a07c1242117fe430c4",
      "parents": [
        "d3c47d229633e3f3b3c3d0d01b872057d73f0487"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Dec 18 07:38:37 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Jan 13 16:37:40 2018"
      },
      "message": "Encoder: Change the way we reckon the number of items added\n\nInstead of counting forward the number of items added, which meant we\ncouldn\u0027t know in cbot_encoder_close_container() whether we had added\nenough, let\u0027s count backwards. The number is offset by 1 so we should be\nat 1 if we added exactly as many items as we had expected to. Zero means\nwe added too many. Any other number means we added too few.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "d3c47d229633e3f3b3c3d0d01b872057d73f0487",
      "tree": "de5abce7fb1487cf2112980652f856dcee91faf5",
      "parents": [
        "f39dcb8b563c3f2030af8af85be3a3652d42e3e9"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 22:11:27 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sat Jan 13 16:36:35 2018"
      },
      "message": "Valiation: suppress warning about uninitialized variables\n\nGCC7 complains, though it\u0027s wrong:\n\n src/cborvalidation.c:472:57: error: ‘previous’ may be used uninitialized in this function [-Werror\u003dmaybe-uninitialized]\n src/cborvalidation.c:485:61: error: ‘previous_end’ may be used uninitialized in this function [-Werror\u003dmaybe-uninitialized]\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "f39dcb8b563c3f2030af8af85be3a3652d42e3e9",
      "tree": "6b1351a3cb308c29b23daa5fe5022fdd45561508",
      "parents": [
        "ee63f791be12295cf4d19a474e776634a30b9201"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Dec 22 16:03:51 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 02 23:05:44 2018"
      },
      "message": "Pretty: move the two functions taking FILE* to a separate file\n\nThis now allows the cborpretty.c source to be compiled even in C\nfreestanding environments.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "ee63f791be12295cf4d19a474e776634a30b9201",
      "tree": "9825119199221562fa919a23057b0cc74b8c7c3b",
      "parents": [
        "36bdbfb854b0c75d8faeb7d15d0a542bbf3ec291"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Dec 22 15:55:02 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Jan 02 23:05:44 2018"
      },
      "message": "Pretty: add the ability to stream out to a generic thing\n\nInstead of always requiring FILE *. This does mean a slight code size\nincrease, since we now have to pass an extra parameter down the function\nstack, plus we\u0027re making indirect calls, but it\u0027s worth it.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "36bdbfb854b0c75d8faeb7d15d0a542bbf3ec291",
      "tree": "274e6cb0809879584e1b49df456781d7de3df53b",
      "parents": [
        "345ffce82a5b823368a7a79acd5374df8a5f59c7"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Mon Dec 18 04:17:35 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Dec 27 01:05:32 2017"
      },
      "message": "Tests: print the error message insead of just a number (or nothing)\n\nSome QCOMPARE did convert to int() so we would see an error number, but\nnot all comparisons did. For those those that didn\u0027t, QCOMPARE would\njust print that the values differed, but not show what.\n\nSo try to harmonize on printing the error message.\n\nI may not have caught all uses...\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "345ffce82a5b823368a7a79acd5374df8a5f59c7",
      "tree": "f97e2dfc4b5c0d5083e8d7d37aa29df01e48490e",
      "parents": [
        "b087939748a00d74647ff0dcdeaa5a93c8ed9de5"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Sun Dec 17 23:38:36 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Dec 27 01:01:58 2017"
      },
      "message": "Add support for more half-float values\n\nSince Qt 5.9 has qfloat16, it became easier to write values. There was\nno point with just the stand-in type, since the encoder would write\nexactly the bytes we gave it.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "b087939748a00d74647ff0dcdeaa5a93c8ed9de5",
      "tree": "d0a04b382ad90d30e7c59847ea29d9942b6586a5",
      "parents": [
        "c3c7bf63ed2c481757af1086b5490db5fdda1ae1"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Dec 22 12:47:00 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Wed Dec 27 01:01:29 2017"
      },
      "message": "Parser: set *len \u003d 0 in the last string chunk\n\nProbably a good idea anyway, plus solves a false positive warning:\n\n src/compilersupport_p.h:192:34: error: ‘chunkLen’ may be used uninitialized in this function [-Werror\u003dmaybe-uninitialized]\n     return __builtin_add_overflow(v1, v2, r);\n            ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~\n src/cborparser.c:1163:16: note: ‘chunkLen’ was declared here\n         size_t chunkLen \u003d chunkLen;\n                ^~~~~~~~\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "c3c7bf63ed2c481757af1086b5490db5fdda1ae1",
      "tree": "f926e203d86b1046dd60beba693d84befc9d38a5",
      "parents": [
        "e5662358cb759a61475f0f760287905b33f67c94"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 19:44:58 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 20:28:39 2017"
      },
      "message": "Only #include \u003cassert.h\u003e if assert isn\u0027t yet defined\n\nThe C standard requires every the macro to be redefined every time that\n\u003cassert.h\u003e is included. It does so you can change NDEBUG from one\n\nBut that also means a wrapper couldn\u0027t #define assert to their own\nmacro. So stop overriding.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "e5662358cb759a61475f0f760287905b33f67c94",
      "tree": "94dbd3f6105a982a919785873adc3944b8ef52c6",
      "parents": [
        "09e4f8e4363a1154091a009967c96f65deb4b59c"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 20:23:55 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 20:24:11 2017"
      },
      "message": "Brown paper bag: forgot to change the PATH to Qt\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "09e4f8e4363a1154091a009967c96f65deb4b59c",
      "tree": "a701778824698d4bcfe67c4ae3f46f7e44c3eb1e",
      "parents": [
        "afa273cffe792f1266ae7a8c9e3370a15506ebde"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 19:43:05 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 26 20:10:29 2017"
      },
      "message": "Update Qt to 5.9 on Travis/Linux testing\n\nThe Windows builds on Appveyor use 5.9; the macOS builds on Travis use\nthe latest from Homebrew, which is currently 5.10.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "afa273cffe792f1266ae7a8c9e3370a15506ebde",
      "tree": "de870fa2d5a01191d22fb726579bf7b951acff65",
      "parents": [
        "c4fa09e1966af4b912ec27a079b8fdc05d93eb18"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Dec 22 15:21:54 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Fri Dec 22 17:55:14 2017"
      },
      "message": "Add #include guards to the utf8_p.h internal header\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    },
    {
      "commit": "c4fa09e1966af4b912ec27a079b8fdc05d93eb18",
      "tree": "b1c6efa23b803037ca58f13f5003bebb1289eab3",
      "parents": [
        "d1f9416db4fa7055636e9277aec6cda755eb19d4"
      ],
      "author": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Tue Dec 19 17:19:56 2017"
      },
      "committer": {
        "name": "Thiago Macieira",
        "email": "thiago.macieira@intel.com",
        "time": "Thu Dec 21 22:01:32 2017"
      },
      "message": "Validation: make sure that it compiles in C++ mode too\n\nLike the rest of our parser and encoder, it\u0027s useful to be #include\u0027d in\nC++ souces.\n\nSigned-off-by: Thiago Macieira \u003cthiago.macieira@intel.com\u003e\n"
    }
  ],
  "next": "d1f9416db4fa7055636e9277aec6cda755eb19d4"
}
