Bullet -WConversion Conformance

Rommel
Posts: 4
Joined: Sat Jan 22, 2011 8:27 am

Bullet -WConversion Conformance

Post by Rommel »

The following changes made Bullet r2387 conformate to the -WConversion switch in GCC (which is very handy, and frustrating to have to disable for individual files):

/bullet/LinearMath/btSerializer.h (~Line 495)

Code: Select all

		virtual	void	finishSerialization()
		{
			writeDNA();

			//if we didn't pre-allocate a buffer, we need to create a contiguous buffer now
			long unsigned mysize = 0;  // changed from int for -WConversion
			if (!m_totalSize)
			{
				if (m_buffer)
					btAlignedFree(m_buffer);

				m_currentSize += BT_HEADER_LENGTH;
				m_buffer = (unsigned char*)btAlignedAlloc(m_currentSize,16);

				unsigned char* currentPtr = m_buffer;
				writeHeader(m_buffer);
				currentPtr += BT_HEADER_LENGTH;
				mysize += BT_HEADER_LENGTH;
				for (int i=0;i<	m_chunkPtrs.size(); ++i)
				{
					long unsigned curLength = sizeof(btChunk) + m_chunkPtrs[i]->m_length; // changed from int for -WConversion
					memcpy(currentPtr,m_chunkPtrs[i], curLength);
					btAlignedFree(m_chunkPtrs[i]);
					currentPtr += curLength;
					mysize += curLength;
				}
			}

			mTypes.clear();
			mStructs.clear();
			mTlens.clear();
			mStructReverse.clear();
			mTypeLookup.clear();
			m_chunkP.clear();
			m_nameMap.clear();
			m_uniquePointers.clear();
			m_chunkPtrs.clear();
		}
/bullet/BulletCollision/CollisionShapes/btBoxShape.h

Code: Select all

	virtual void getVertex(int i,btVector3& vtx) const
	{
		btVector3 halfExtents = getHalfExtentsWithMargin();

		int i1 = 1 - (i&1);
		int i2 = 1 - ((i&2)>>1);
		int i4 = 1 - ((i&4)>>2);

		vtx = btVector3(
				halfExtents.x() * btScalar(i1) - halfExtents.x() * btScalar(i1), // explicit btScalar for -WConversion
				halfExtents.y() * btScalar(i2) - halfExtents.y() * btScalar(i2), // explicit btScalar for -WConversion
				halfExtents.z() * btScalar(i4) - halfExtents.z() * btScalar(i4)); // explicit btScalar for -WConversion
	}