Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-29681

QSettings doesn't handle qulonglong values properly

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 5.0.1
    • Core: Other
    • None
    • Windows 7 (both 32-bit and 64-bit) and OS X 10.8.2
    • macOS

    Description

      If you set a value to a QSettings and then retrieve it, you will get some unexpected results on Windows 7 (be it 32-bit or 64-bit) and OS X 10.8.2 while it works as expected on Ubuntu 12.04 (both 32-bit and 64-bit).

      Attached is some code that illustrates the issue at hand.

      Output on Windows 7:

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      test(pValue);
      ---> pValue: 4294967295

      QSettings settings;
      settings.setValue("Test", pValue);
      qulonglong retrievedValue = settings.value("Test").toULongLong();
      ---> retrievedValue [Expected]: 4294967295
      ---> retrievedValue [Actual]: 0

      ---------------------------------------

      test(pValue);
      ---> pValue: 4294967296

      QSettings settings;
      settings.setValue("Test", pValue);
      qulonglong retrievedValue = settings.value("Test").toULongLong();
      ---> retrievedValue [Expected]: 4294967296
      ---> retrievedValue [Actual]: 0

      ---------------------------------------

      test(pValue);
      ---> pValue: 4294967297

      QSettings settings;
      settings.setValue("Test", pValue);
      qulonglong retrievedValue = settings.value("Test").toULongLong();
      ---> retrievedValue [Expected]: 4294967297
      ---> retrievedValue [Actual]: 0
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      and on OS X 10.8.2:

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      test(pValue);
      ---> pValue: 4294967295

      QSettings settings;
      settings.setValue("Test", pValue);
      qulonglong retrievedValue = settings.value("Test").toULongLong();
      ---> retrievedValue [Expected]: 4294967295
      ---> retrievedValue [Actual]: 18446744073709551615

      ---------------------------------------

      test(pValue);
      ---> pValue: 4294967296

      QSettings settings;
      settings.setValue("Test", pValue);
      qulonglong retrievedValue = settings.value("Test").toULongLong();
      ---> retrievedValue [Expected]: 4294967296
      ---> retrievedValue [Actual]: 0

      ---------------------------------------

      test(pValue);
      ---> pValue: 4294967297

      QSettings settings;
      settings.setValue("Test", pValue);
      qulonglong retrievedValue = settings.value("Test").toULongLong();
      ---> retrievedValue [Expected]: 4294967297
      ---> retrievedValue [Actual]: 1
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            agarny Alan Garny
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes