Loading libs/binder/Parcel.cpp +44 −1 Original line number Diff line number Diff line Loading @@ -627,11 +627,27 @@ status_t Parcel::writeFloat(float val) return writeAligned(val); } #if defined(__mips__) && defined(__mips_hard_float) status_t Parcel::writeDouble(double val) { union { double d; unsigned long long ll; } u; u.d = val; return writeAligned(u.ll); } #else status_t Parcel::writeDouble(double val) { return writeAligned(val); } #endif status_t Parcel::writeIntPtr(intptr_t val) { return writeAligned(val); Loading Loading @@ -962,17 +978,44 @@ float Parcel::readFloat() const return readAligned<float>(); } #if defined(__mips__) && defined(__mips_hard_float) status_t Parcel::readDouble(double *pArg) const { return readAligned(pArg); union { double d; unsigned long long ll; } u; status_t status; status = readAligned(&u.ll); *pArg = u.d; return status; } double Parcel::readDouble() const { union { double d; unsigned long long ll; } u; u.ll = readAligned<unsigned long long>(); return u.d; } #else status_t Parcel::readDouble(double *pArg) const { return readAligned(pArg); } double Parcel::readDouble() const { return readAligned<double>(); } #endif status_t Parcel::readIntPtr(intptr_t *pArg) const { return readAligned(pArg); Loading Loading
libs/binder/Parcel.cpp +44 −1 Original line number Diff line number Diff line Loading @@ -627,11 +627,27 @@ status_t Parcel::writeFloat(float val) return writeAligned(val); } #if defined(__mips__) && defined(__mips_hard_float) status_t Parcel::writeDouble(double val) { union { double d; unsigned long long ll; } u; u.d = val; return writeAligned(u.ll); } #else status_t Parcel::writeDouble(double val) { return writeAligned(val); } #endif status_t Parcel::writeIntPtr(intptr_t val) { return writeAligned(val); Loading Loading @@ -962,17 +978,44 @@ float Parcel::readFloat() const return readAligned<float>(); } #if defined(__mips__) && defined(__mips_hard_float) status_t Parcel::readDouble(double *pArg) const { return readAligned(pArg); union { double d; unsigned long long ll; } u; status_t status; status = readAligned(&u.ll); *pArg = u.d; return status; } double Parcel::readDouble() const { union { double d; unsigned long long ll; } u; u.ll = readAligned<unsigned long long>(); return u.d; } #else status_t Parcel::readDouble(double *pArg) const { return readAligned(pArg); } double Parcel::readDouble() const { return readAligned<double>(); } #endif status_t Parcel::readIntPtr(intptr_t *pArg) const { return readAligned(pArg); Loading