[Midnightbsd-cvs] mports [23291] trunk/www/libxul/files: add more patches

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Tue May 1 08:32:08 EDT 2018


Revision: 23291
          http://svnweb.midnightbsd.org/mports/?rev=23291
Author:   laffer1
Date:     2018-05-01 08:32:07 -0400 (Tue, 01 May 2018)
Log Message:
-----------
add more patches

Added Paths:
-----------
    trunk/www/libxul/files/patch-bug1232150
    trunk/www/libxul/files/patch-bug1290037
    trunk/www/libxul/files/patch-bug1320621
    trunk/www/libxul/files/patch-bug1320991
    trunk/www/libxul/files/patch-bug1321877
    trunk/www/libxul/files/patch-bug757366

Added: trunk/www/libxul/files/patch-bug1232150
===================================================================
--- trunk/www/libxul/files/patch-bug1232150	                        (rev 0)
+++ trunk/www/libxul/files/patch-bug1232150	2018-05-01 12:32:07 UTC (rev 23291)
@@ -0,0 +1,280 @@
+commit 9a18802e82c7
+Author: Martin Husemann <martin>
+Date:   Fri Jan 22 00:09:00 2016 +0100
+
+    Bug 1232150 - "Atomic operations for PPC/PPC64". r=lhansen
+---
+ js/src/jit/AtomicOperations.h            |   2 +
+ js/src/jit/none/AtomicOperations-sparc.h | 251 +++++++++++++++++++++++++++++++
+ 2 files changed, 253 insertions(+)
+
+diff --git js/src/jit/AtomicOperations.h js/src/jit/AtomicOperations.h
+index 16196342a282..42aee72eb879 100644
+--- js/src/jit/AtomicOperations.h
++++ js/src/jit/AtomicOperations.h
+@@ -328,6 +328,8 @@ AtomicOperations::isLockfree(int32_t size)
+ # include "jit/mips-shared/AtomicOperations-mips-shared.h"
+ #elif defined(__ppc__) || defined(__PPC__)
+ # include "jit/none/AtomicOperations-ppc.h"
++#elif defined(__sparc__)
++# include "jit/none/AtomicOperations-sparc.h"
+ #elif defined(JS_CODEGEN_NONE)
+   // You can disable the JIT with --disable-ion but you must still
+   // provide the atomic operations that will be used by the JS engine.
+diff --git js/src/jit/none/AtomicOperations-sparc.h js/src/jit/none/AtomicOperations-sparc.h
+new file mode 100644
+index 000000000000..706ada86241b
+--- /dev/null
++++ js/src/jit/none/AtomicOperations-sparc.h
+@@ -0,0 +1,251 @@
++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ * vim: set ts=8 sts=4 et sw=4 tw=99:
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++/* For documentation, see jit/AtomicOperations.h */
++
++#ifndef jit_sparc_AtomicOperations_sparc_h
++#define jit_sparc_AtomicOperations_sparc_h
++
++#include "mozilla/Assertions.h"
++#include "mozilla/Types.h"
++
++#if defined(__clang__) || defined(__GNUC__)
++
++// The default implementation tactic for gcc/clang is to use the newer
++// __atomic intrinsics added for use in C++11 <atomic>.  Where that
++// isn't available, we use GCC's older __sync functions instead.
++//
++// ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS is kept as a backward
++// compatible option for older compilers: enable this to use GCC's old
++// __sync functions instead of the newer __atomic functions.  This
++// will be required for GCC 4.6.x and earlier, and probably for Clang
++// 3.1, should we need to use those versions.
++
++//#define ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++
++inline bool
++js::jit::AtomicOperations::isLockfree8()
++{
++# ifndef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int8_t), 0));
++    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int16_t), 0));
++    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int32_t), 0));
++#  if defined(__LP64__)
++    MOZ_ASSERT(__atomic_always_lock_free(sizeof(int64_t), 0));
++#  endif
++    return true;
++# else
++    return false;
++# endif
++}
++
++inline void
++js::jit::AtomicOperations::fenceSeqCst()
++{
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    __sync_synchronize();
++# else
++    __atomic_thread_fence(__ATOMIC_SEQ_CST);
++# endif
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::loadSeqCst(T* addr)
++{
++    MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    __sync_synchronize();
++    T v = *addr;
++    __sync_synchronize();
++# else
++    T v;
++    __atomic_load(addr, &v, __ATOMIC_SEQ_CST);
++# endif
++    return v;
++}
++
++template<typename T>
++inline void
++js::jit::AtomicOperations::storeSeqCst(T* addr, T val)
++{
++    MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    __sync_synchronize();
++    *addr = val;
++    __sync_synchronize();
++# else
++    __atomic_store(addr, &val, __ATOMIC_SEQ_CST);
++# endif
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::compareExchangeSeqCst(T* addr, T oldval, T newval)
++{
++    MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    return __sync_val_compare_and_swap(addr, oldval, newval);
++# else
++    __atomic_compare_exchange(addr, &oldval, &newval, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
++    return oldval;
++# endif
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::fetchAddSeqCst(T* addr, T val)
++{
++#if !defined( __LP64__)
++    static_assert(sizeof(T) <= 4, "not available for 8-byte values yet");
++#endif
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    return __sync_fetch_and_add(addr, val);
++# else
++    return __atomic_fetch_add(addr, val, __ATOMIC_SEQ_CST);
++# endif
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::fetchSubSeqCst(T* addr, T val)
++{
++#if !defined( __LP64__)
++    static_assert(sizeof(T) <= 4, "not available for 8-byte values yet");
++#endif
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    return __sync_fetch_and_sub(addr, val);
++# else
++    return __atomic_fetch_sub(addr, val, __ATOMIC_SEQ_CST);
++# endif
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::fetchAndSeqCst(T* addr, T val)
++{
++#if !defined( __LP64__)
++    static_assert(sizeof(T) <= 4, "not available for 8-byte values yet");
++#endif
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    return __sync_fetch_and_and(addr, val);
++# else
++    return __atomic_fetch_and(addr, val, __ATOMIC_SEQ_CST);
++# endif
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::fetchOrSeqCst(T* addr, T val)
++{
++#if !defined( __LP64__)
++    static_assert(sizeof(T) <= 4, "not available for 8-byte values yet");
++#endif
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    return __sync_fetch_and_or(addr, val);
++# else
++    return __atomic_fetch_or(addr, val, __ATOMIC_SEQ_CST);
++# endif
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::fetchXorSeqCst(T* addr, T val)
++{
++#if !defined( __LP64__)
++    static_assert(sizeof(T) <= 4, "not available for 8-byte values yet");
++#endif
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    return __sync_fetch_and_xor(addr, val);
++# else
++    return __atomic_fetch_xor(addr, val, __ATOMIC_SEQ_CST);
++# endif
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::loadSafeWhenRacy(T* addr)
++{
++    return *addr;               // FIXME (1208663): not yet safe
++}
++
++template<typename T>
++inline void
++js::jit::AtomicOperations::storeSafeWhenRacy(T* addr, T val)
++{
++    *addr = val;                // FIXME (1208663): not yet safe
++}
++
++inline void
++js::jit::AtomicOperations::memcpySafeWhenRacy(void* dest, const void* src, size_t nbytes)
++{
++    ::memcpy(dest, src, nbytes); // FIXME (1208663): not yet safe
++}
++
++inline void
++js::jit::AtomicOperations::memmoveSafeWhenRacy(void* dest, const void* src, size_t nbytes)
++{
++    ::memmove(dest, src, nbytes); // FIXME (1208663): not yet safe
++}
++
++template<typename T>
++inline T
++js::jit::AtomicOperations::exchangeSeqCst(T* addr, T val)
++{
++    MOZ_ASSERT(sizeof(T) < 8 || isLockfree8());
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    T v;
++    __sync_synchronize();
++    do {
++	v = *addr;
++    } while (__sync_val_compare_and_swap(addr, v, val) != v);
++    return v;
++# else
++    T v;
++    __atomic_exchange(addr, &val, &v, __ATOMIC_SEQ_CST);
++    return v;
++# endif
++}
++
++template<size_t nbytes>
++inline void
++js::jit::RegionLock::acquire(void* addr)
++{
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    while (!__sync_bool_compare_and_swap(&spinlock, 0, 1))
++        ;
++# else
++    uint32_t zero = 0;
++    uint32_t one = 1;
++    while (!__atomic_compare_exchange(&spinlock, &zero, &one, false, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE)) {
++        zero = 0;
++        continue;
++    }
++# endif
++}
++
++template<size_t nbytes>
++inline void
++js::jit::RegionLock::release(void* addr)
++{
++    MOZ_ASSERT(AtomicOperations::loadSeqCst(&spinlock) == 1, "releasing unlocked region lock");
++# ifdef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++    __sync_sub_and_fetch(&spinlock, 1);
++# else
++    uint32_t zero = 0;
++    __atomic_store(&spinlock, &zero, __ATOMIC_SEQ_CST);
++# endif
++}
++
++# undef ATOMICS_IMPLEMENTED_WITH_SYNC_INTRINSICS
++
++#elif defined(ENABLE_SHARED_ARRAY_BUFFER)
++
++# error "Either disable JS shared memory, use GCC or Clang, or add code here"
++
++#endif
++
++#endif // jit_sparc_AtomicOperations_sparc_h


Property changes on: trunk/www/libxul/files/patch-bug1232150
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/www/libxul/files/patch-bug1290037
===================================================================
--- trunk/www/libxul/files/patch-bug1290037	                        (rev 0)
+++ trunk/www/libxul/files/patch-bug1290037	2018-05-01 12:32:07 UTC (rev 23291)
@@ -0,0 +1,29 @@
+commit 7943c27406fb
+Author: Franziskus Kiefer <franziskuskiefer at gmail.com>
+Date:   Thu Jul 28 16:48:00 2016 +0200
+
+    Bug 1290037 - Update keybits in H2, r=mt
+    
+    MozReview-Commit-ID: 35oWoDMqe1Y
+    
+    --HG--
+    extra : rebase_source : 020fbd93c190131eb04eed2d583787d6e5954a5a
+---
+ netwerk/protocol/http/Http2Session.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git netwerk/protocol/http/Http2Session.cpp netwerk/protocol/http/Http2Session.cpp
+index dbcc1115cbd3..f3cd57304f73 100644
+--- netwerk/protocol/http/Http2Session.cpp
++++ netwerk/protocol/http/Http2Session.cpp
+@@ -3549,8 +3549,8 @@ Http2Session::ConfirmTLSProfile()
+     LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to DH %d < 2048\n",
+           this, keybits));
+     RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY);
+-  } else if (kea == ssl_kea_ecdh && keybits < 256) { // 256 bits is "security level" of 128
+-    LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to ECDH %d < 256\n",
++  } else if (kea == ssl_kea_ecdh && keybits < 224) { // see rfc7540 9.2.1.
++    LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to ECDH %d < 224\n",
+           this, keybits));
+     RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY);
+   }


Property changes on: trunk/www/libxul/files/patch-bug1290037
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/www/libxul/files/patch-bug1320621
===================================================================
--- trunk/www/libxul/files/patch-bug1320621	                        (rev 0)
+++ trunk/www/libxul/files/patch-bug1320621	2018-05-01 12:32:07 UTC (rev 23291)
@@ -0,0 +1,39 @@
+Make sure --enable-system-hunspell picks up system headers
+
+--- extensions/spellcheck/hunspell/glue/moz.build
++++ extensions/spellcheck/hunspell/glue/moz.build
+@@ -11,12 +11,14 @@ UNIFIED_SOURCES += [
+     'RemoteSpellCheckEngineParent.cpp',
+ ]
+ 
+-CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS']
+-
+ FINAL_LIBRARY = 'xul'
+ 
++if CONFIG['MOZ_NATIVE_HUNSPELL']:
++    CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS']
++else:
++    LOCAL_INCLUDES += ['../src']
++
+ LOCAL_INCLUDES += [
+-    '../src',
+     '/dom/base',
+     '/extensions/spellcheck/src',
+ ]
+--- extensions/spellcheck/src/moz.build
++++ extensions/spellcheck/src/moz.build
+@@ -17,9 +17,13 @@ UNIFIED_SOURCES += [
+ 
+ FINAL_LIBRARY = 'xul'
+ 
++if CONFIG['MOZ_NATIVE_HUNSPELL']:
++    CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS']
++else:
++    LOCAL_INCLUDES += ['../hunspell/src']
++
+ LOCAL_INCLUDES += [
+     '../hunspell/glue',
+-    '../hunspell/src',
+     '/dom/base',
+ ]
+ EXPORTS.mozilla += [


Property changes on: trunk/www/libxul/files/patch-bug1320621
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/www/libxul/files/patch-bug1320991
===================================================================
--- trunk/www/libxul/files/patch-bug1320991	                        (rev 0)
+++ trunk/www/libxul/files/patch-bug1320991	2018-05-01 12:32:07 UTC (rev 23291)
@@ -0,0 +1,43 @@
+commit 454e2dbe1b4f
+Author: Mike Shal <mshal at mozilla.com>
+Date:   Tue Dec 20 16:37:18 2016 -0500
+
+    Bug 1320991 - Support --with-system-{nss,nspr} in modules/libmar; r?glandium
+    
+    The problem with the modules/libmar/tests/moz.build file when building
+    --with-system-nspr and --with-system-nss is that the nss libraries don't
+    exist in the tree, so they fail when trying to copy into the test
+    directory.
+    
+    However, it turns out that the libraries copied into the test directory
+    aren't even used when building with an in-tree copy, because the
+    xpcshell launcher sets LD_LIBRARY_PATH to point to dist/bin. Since we
+    use the dist/bin copies anyway for an in-tree build, we can stop copying
+    them into the test directory and simultaneously fix the --with-system
+    build.
+    
+    The DEFINES can also go away since this directory doesn't actually build
+    anything.
+    
+    MozReview-Commit-ID: Bk2f28wc9ZJ
+---
+ modules/libmar/tests/moz.build | 17 -----------------
+ 1 file changed, 17 deletions(-)
+
+diff --git modules/libmar/tests/moz.build modules/libmar/tests/moz.build
+index ee72571b0c6b..9642553e8aa2 100644
+--- modules/libmar/tests/Makefile.in
++++ modules/libmar/tests/Makefile.in
+@@ -10,12 +10,5 @@ ifneq ($(OS_TARGET),Android)
+ ifndef MOZ_PROFILE_GENERATE
+ libs::
+ 	$(INSTALL) ../tool/signmar$(BIN_SUFFIX) $(TESTROOT)/unit
+-	$(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nss3$(DLL_SUFFIX) $(TESTROOT)/unit
+-ifndef MOZ_FOLD_LIBS
+-	$(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nssutil3$(DLL_SUFFIX) $(TESTROOT)/unit
+-	$(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)plc4$(DLL_SUFFIX) $(TESTROOT)/unit
+-	$(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)nspr4$(DLL_SUFFIX) $(TESTROOT)/unit
+-	$(INSTALL) $(DEPTH)/dist/bin/$(DLL_PREFIX)plds4$(DLL_SUFFIX) $(TESTROOT)/unit
+-endif
+ endif
+ endif # Not Android


Property changes on: trunk/www/libxul/files/patch-bug1320991
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/www/libxul/files/patch-bug1321877
===================================================================
--- trunk/www/libxul/files/patch-bug1321877	                        (rev 0)
+++ trunk/www/libxul/files/patch-bug1321877	2018-05-01 12:32:07 UTC (rev 23291)
@@ -0,0 +1,42 @@
+commit a13d95795217
+Author:  <tharvik at gmail.com>
+Date:   Thu Dec 8 18:20:12 2016 -0600
+
+    Bug 1321877. Fix compiler warnings in Downscaler.h when skia is not enabled. r=tnikkel
+---
+ image/Downscaler.h | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git image/Downscaler.h image/Downscaler.h
+index 21179a38f200..0bdef0eaa646 100644
+--- image/Downscaler.h
++++ image/Downscaler.h
+@@ -154,14 +154,14 @@ private:
+ class Downscaler
+ {
+ public:
+-  explicit Downscaler(const nsIntSize&)
++  explicit Downscaler(const nsIntSize&) : mScale(1.0, 1.0)
+   {
+     MOZ_RELEASE_ASSERT(false, "Skia is not enabled");
+   }
+ 
+-  const nsIntSize& OriginalSize() const { return nsIntSize(); }
+-  const nsIntSize& TargetSize() const { return nsIntSize(); }
+-  const gfxSize& Scale() const { return gfxSize(1.0, 1.0); }
++  const nsIntSize& OriginalSize() const { return mSize; }
++  const nsIntSize& TargetSize() const { return mSize; }
++  const gfxSize& Scale() const { return mScale; }
+ 
+   nsresult BeginFrame(const nsIntSize&, const Maybe<nsIntRect>&, uint8_t*, bool, bool = false)
+   {
+@@ -177,6 +177,9 @@ public:
+   DownscalerInvalidRect TakeInvalidRect() { return DownscalerInvalidRect(); }
+   void ResetForNextProgressivePass() { }
+   const nsIntSize FrameSize() const { return nsIntSize(0, 0); }
++private:
++  nsIntSize mSize;
++  gfxSize mScale;
+ };
+ 
+ #endif // MOZ_ENABLE_SKIA


Property changes on: trunk/www/libxul/files/patch-bug1321877
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/www/libxul/files/patch-bug757366
===================================================================
--- trunk/www/libxul/files/patch-bug757366	                        (rev 0)
+++ trunk/www/libxul/files/patch-bug757366	2018-05-01 12:32:07 UTC (rev 23291)
@@ -0,0 +1,58 @@
+commit 2a3be4b384b9
+Author: Jonathan Kew <jkew at mozilla.com>
+Date:   Mon Sep 26 18:05:14 2016 +0100
+
+    Bug 757366 - Don't cast pointers to 'name'-table data to uint16_t*, as they may not be 16-bit-aligned. r=jrmuizel
+---
+ gfx/thebes/gfxFontUtils.cpp | 26 ++++++++++++++------------
+ 1 file changed, 14 insertions(+), 12 deletions(-)
+
+diff --git gfx/thebes/gfxFontUtils.cpp gfx/thebes/gfxFontUtils.cpp
+index 526e17d..cb505e8 100644
+--- gfx/thebes/gfxFontUtils.cpp
++++ gfx/thebes/gfxFontUtils.cpp
+@@ -918,16 +918,18 @@ IsValidSFNTVersion(uint32_t version)
+            version == TRUETYPE_TAG('t','r','u','e');
+ }
+ 
+-// copy and swap UTF-16 values, assume no surrogate pairs, can be in place
++// Copy and swap UTF-16 values, assume no surrogate pairs, can be in place.
++// aInBuf and aOutBuf are NOT necessarily 16-bit-aligned, so we should avoid
++// accessing them directly as uint16_t* values.
++// aLen is count of UTF-16 values, so the byte buffers are twice that.
+ static void
+-CopySwapUTF16(const uint16_t *aInBuf, uint16_t *aOutBuf, uint32_t aLen)
++CopySwapUTF16(const char* aInBuf, char* aOutBuf, uint32_t aLen)
+ {
+-    const uint16_t *end = aInBuf + aLen;
++    const char* end = aInBuf + aLen * 2;
+     while (aInBuf < end) {
+-        uint16_t value = *aInBuf;
+-        *aOutBuf = (value >> 8) | (value & 0xff) << 8;
+-        aOutBuf++;
+-        aInBuf++;
++        uint8_t b0 = *aInBuf++;
++        *aOutBuf++ = *aInBuf++;
++        *aOutBuf++ = b0;
+     }
+ }
+ 
+@@ -1446,13 +1448,13 @@ gfxFontUtils::DecodeFontName(const char *aNameData, int32_t aByteLen,
+     if (csName[0] == 0) {
+         // empty charset name: data is utf16be, no need to instantiate a converter
+         uint32_t strLen = aByteLen / 2;
+-#ifdef IS_LITTLE_ENDIAN
+         aName.SetLength(strLen);
+-        CopySwapUTF16(reinterpret_cast<const uint16_t*>(aNameData),
+-                      reinterpret_cast<uint16_t*>(aName.BeginWriting()), strLen);
++#ifdef IS_LITTLE_ENDIAN
++        CopySwapUTF16(aNameData, reinterpret_cast<char*>(aName.BeginWriting()),
++                      strLen);
+ #else
+-        aName.Assign(reinterpret_cast<const char16_t*>(aNameData), strLen);
+-#endif    
++        memcpy(aName.BeginWriting(), aNameData, strLen * 2);
++#endif
+         return true;
+     }
+ 


Property changes on: trunk/www/libxul/files/patch-bug757366
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list