@@ -146,7 +146,7 @@ namespace bs
146
146
bool objectIsBaseClass = false ;
147
147
148
148
UINT32 bitsRead = readObjectMetaData (bufferedStream, flags, objectId, objectTypeId, objectIsBaseClass);
149
- bufferedStream.skip (-(int32_t )bitsRead);
149
+ bufferedStream.skip (-(int64_t )bitsRead);
150
150
151
151
if (objectIsBaseClass)
152
152
{
@@ -193,7 +193,7 @@ namespace bs
193
193
194
194
// Don't set report callback until we actually do the reads
195
195
mReportProgress = std::move (progress);
196
- bufferedStream.seek ((uint32_t )start * 8 );
196
+ bufferedStream.seek ((uint64_t )start * 8 );
197
197
198
198
// Now actually decode the objects
199
199
ObjectToDecode& rootObjectToDecode = mDecodeObjectMap [rootObjectId];
@@ -205,7 +205,7 @@ namespace bs
205
205
rootObjectToDecode.isDecoded = true ;
206
206
207
207
mDecodeObjectMap .clear ();
208
- bufferedStream.seek ((uint32_t )endBits);
208
+ bufferedStream.seek ((uint64_t )endBits);
209
209
stream->seek (end);
210
210
211
211
assert (bufferedStream.tell () == endBits);
@@ -510,7 +510,7 @@ namespace bs
510
510
if (!objIsBaseClass)
511
511
{
512
512
// Found new object, we're done
513
- stream.skip (-(int32_t )readBits);
513
+ stream.skip (-(int64_t )readBits);
514
514
515
515
finalizeObject (output.get ());
516
516
return true ;
@@ -679,8 +679,8 @@ namespace bs
679
679
{
680
680
objToDecode.decodeInProgress = true ;
681
681
682
- const uint32_t curOffset = stream.tell ();
683
- stream.seek (( uint32_t ) objToDecode.offset );
682
+ const uint64_t curOffset = stream.tell ();
683
+ stream.seek (objToDecode.offset );
684
684
decodeEntry (stream, dataEnd, flags, objToDecode.object , fieldTypeSchema);
685
685
stream.seek (curOffset);
686
686
@@ -729,7 +729,7 @@ namespace bs
729
729
{
730
730
BitLength typeSize;
731
731
BitLength headerSize = rtti_read_size_header (stream, true , typeSize);
732
- stream.skip (-(int32_t )headerSize.getBits ());
732
+ stream.skip (-(int64_t )headerSize.getBits ());
733
733
734
734
typeSizeBits = typeSize.getBits ();
735
735
}
@@ -739,7 +739,7 @@ namespace bs
739
739
stream.readBytes (typeSize);
740
740
stream.skipBytes (-(int32_t )sizeof (uint32_t ));
741
741
742
- typeSizeBits = typeSize * 8 ;
742
+ typeSizeBits = ( uint64_t ) typeSize * 8 ;
743
743
}
744
744
}
745
745
@@ -748,15 +748,15 @@ namespace bs
748
748
stream.preload ((uint32_t )Math::divideAndRoundUp (typeSizeBits, (uint64_t )8 ));
749
749
curField->arrayElemFromBuffer (rttiInstance, output.get (), i, stream.getBitstream (), compressed);
750
750
751
- stream.skip (( uint32_t ) typeSizeBits);
751
+ stream.skip (typeSizeBits);
752
752
}
753
753
else
754
754
{
755
755
bool builtin = fieldSchema.fieldTypeId < 16 ;
756
756
if (compressed && builtin)
757
757
skipBuiltinType (fieldSchema.fieldTypeId , stream, compressed);
758
758
else
759
- stream.skip (( uint32_t ) typeSizeBits);
759
+ stream.skip (typeSizeBits);
760
760
}
761
761
}
762
762
break ;
@@ -824,10 +824,10 @@ namespace bs
824
824
{
825
825
objToDecode.decodeInProgress = true ;
826
826
827
- const size_t curOffset = stream.tell ();
828
- stream.seek (( uint32_t ) objToDecode.offset );
827
+ const uint64_t curOffset = stream.tell ();
828
+ stream.seek (objToDecode.offset );
829
829
decodeEntry (stream, dataEnd, flags, objToDecode.object , fieldTypeSchema);
830
- stream.seek (( uint32_t ) curOffset);
830
+ stream.seek (curOffset);
831
831
832
832
objToDecode.decodeInProgress = false ;
833
833
objToDecode.isDecoded = true ;
@@ -870,7 +870,7 @@ namespace bs
870
870
{
871
871
BitLength typeSize;
872
872
BitLength headerSize = rtti_read_size_header (stream, true , typeSize);
873
- stream.skip (-(int32_t )headerSize.getBits ());
873
+ stream.skip (-(int64_t )headerSize.getBits ());
874
874
875
875
typeSizeBits = typeSize.getBits ();
876
876
}
@@ -880,7 +880,7 @@ namespace bs
880
880
stream.readBytes (typeSize);
881
881
stream.skipBytes (-(int32_t )sizeof (uint32_t ));
882
882
883
- typeSizeBits = typeSize * 8 ;
883
+ typeSizeBits = ( uint64_t ) typeSize * 8 ;
884
884
}
885
885
}
886
886
@@ -889,15 +889,15 @@ namespace bs
889
889
stream.preload ((uint32_t )Math::divideAndRoundUp (typeSizeBits, (uint64_t )8 ));
890
890
curField->fromBuffer (rttiInstance, output.get (), stream.getBitstream (), compressed);
891
891
892
- stream.skip (( uint32_t ) typeSizeBits);
892
+ stream.skip (typeSizeBits);
893
893
}
894
894
else
895
895
{
896
896
bool builtin = fieldSchema.fieldTypeId < 16 ;
897
897
if (compressed && builtin)
898
898
skipBuiltinType (fieldSchema.fieldTypeId , stream, compressed);
899
899
else
900
- stream.skip (( uint32_t ) typeSizeBits);
900
+ stream.skip (typeSizeBits);
901
901
}
902
902
903
903
break ;
@@ -921,7 +921,7 @@ namespace bs
921
921
const SPtr<DataStream>& dataStream = stream.getDataStream ();
922
922
if (dataStream->isFile ()) // Allow streaming
923
923
{
924
- size_t curOffset = stream.tell ();
924
+ uint64_t curOffset = stream.tell ();
925
925
926
926
// Data blocks don't support data that isn't byte aligned, but encoder should take care of that
927
927
assert ((curOffset % 8 ) == 0 );
@@ -954,7 +954,7 @@ namespace bs
954
954
stream.clearBuffered (false );
955
955
}
956
956
957
- uint32_t bytesRead = Math::divideAndRoundUp (stream.tell (), 8U );
957
+ UINT32 bytesRead = (UINT32) Math::divideAndRoundUp (stream.tell (), ( uint64_t ) 8 );
958
958
if (mReportProgress && (bytesRead >= mNextProgressReport ))
959
959
{
960
960
UINT32 lastReport = (bytesRead / REPORT_AFTER_BYTES) * REPORT_AFTER_BYTES;
0 commit comments