Ticket #13087: patches1

File patches1, 3.4 KB (added by vandyswa, 5 years ago)

C++ source patches, experimental fix

Line 
1diff -C4 -r qt-everywhere-opensource-src-4.8.1/src//corelib/codecs/qiconvcodec.cpp ../build_dir/target-arm_v6_uClibc-0.9.33.2_eabi/qt-everywhere-opensource-src-4.8.1/src//corelib/codecs/qiconvcodec.cpp
2*** qt-everywhere-opensource-src-4.8.1/src//corelib/codecs/qiconvcodec.cpp      Wed Mar 14 07:01:18 2012
3--- ../build_dir/target-arm_v6_uClibc-0.9.33.2_eabi/qt-everywhere-opensource-src-4.8.1/src//corelib/codecs/qiconvcodec.cpp      Fri Feb 22 11:58:33 2013
4***************
5*** 140,148 ****
6  }
7 
8  QIconvCodec::IconvState::~IconvState()
9  {
10!     if (cd != reinterpret_cast<iconv_t>(-1))
11          iconv_close(cd);
12      if (buffer != array)
13          delete[] buffer;
14  }
15--- 140,148 ----
16  }
17 
18  QIconvCodec::IconvState::~IconvState()
19  {
20!     if (cd != (-1))
21          iconv_close(cd);
22      if (buffer != array)
23          delete[] buffer;
24  }
25***************
26*** 203,211 ****
27 
28      if (!*pstate) {
29          // first time, create the state
30          iconv_t cd = QIconvCodec::createIconv_t(UTF16, 0);
31!         if (cd == reinterpret_cast<iconv_t>(-1)) {
32              static int reported = 0;
33              if (!reported++) {
34                  fprintf(stderr,
35                          "QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed\n");
36--- 203,211 ----
37 
38      if (!*pstate) {
39          // first time, create the state
40          iconv_t cd = QIconvCodec::createIconv_t(UTF16, 0);
41!         if (cd == (-1)) {
42              static int reported = 0;
43              if (!reported++) {
44                  fprintf(stderr,
45                          "QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed\n");
46***************
47*** 348,368 ****
48      QThreadStorage<QIconvCodec::IconvState *> *ts = fromUnicodeState();
49      IconvState *&state = (qt_locale_initialized && ts) ? ts->localData() : temporaryState;
50      if (!state) {
51          iconv_t cd = QIconvCodec::createIconv_t(0, UTF16);
52!         if (cd != reinterpret_cast<iconv_t>(-1)) {
53              if (!setByteOrder(cd)) {
54                  perror("QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv failed for BOM");
55 
56                  iconv_close(cd);
57!                 cd = reinterpret_cast<iconv_t>(-1);
58 
59                  return QString(uc, len).toLatin1();
60              }
61          }
62          state = new IconvState(cd);
63      }
64!     if (state->cd == reinterpret_cast<iconv_t>(-1)) {
65          static int reported = 0;
66          if (!reported++) {
67              fprintf(stderr,
68                      "QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed\n");
69--- 348,368 ----
70      QThreadStorage<QIconvCodec::IconvState *> *ts = fromUnicodeState();
71      IconvState *&state = (qt_locale_initialized && ts) ? ts->localData() : temporaryState;
72      if (!state) {
73          iconv_t cd = QIconvCodec::createIconv_t(0, UTF16);
74!         if (cd != (-1)) {
75              if (!setByteOrder(cd)) {
76                  perror("QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv failed for BOM");
77 
78                  iconv_close(cd);
79!                 cd = (-1);
80 
81                  return QString(uc, len).toLatin1();
82              }
83          }
84          state = new IconvState(cd);
85      }
86!     if (state->cd == (-1)) {
87          static int reported = 0;
88          if (!reported++) {
89              fprintf(stderr,
90                      "QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed\n");