Skip to content

Commit 5af1afa

Browse files
committed
Preventing the case where track and disc info has never been set in the file
1 parent d665845 commit 5af1afa

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

Knuckleball/MetadataTags.cs

+12-2
Original file line numberDiff line numberDiff line change
@@ -910,7 +910,12 @@ private void WriteDiscInfo(IntPtr tagsPtr, IntPtr discInfoPtr)
910910
}
911911
else
912912
{
913-
NativeMethods.MP4TagDisk discInfo = discInfoPtr.ReadStructure<NativeMethods.MP4TagDisk>();
913+
NativeMethods.MP4TagDisk discInfo = new NativeMethods.MP4TagDisk();
914+
if (discInfoPtr != IntPtr.Zero)
915+
{
916+
discInfoPtr.ReadStructure<NativeMethods.MP4TagDisk>();
917+
}
918+
914919
if (this.DiscNumber.Value != discInfo.index || this.TotalDiscs != discInfo.total)
915920
{
916921
discInfo.index = this.DiscNumber.Value;
@@ -943,7 +948,12 @@ private void WriteTrackInfo(IntPtr tagsPtr, IntPtr trackInfoPtr)
943948
}
944949
else
945950
{
946-
NativeMethods.MP4TagTrack trackInfo = trackInfoPtr.ReadStructure<NativeMethods.MP4TagTrack>();
951+
NativeMethods.MP4TagTrack trackInfo = new NativeMethods.MP4TagTrack();
952+
if (trackInfoPtr != IntPtr.Zero)
953+
{
954+
trackInfo = trackInfoPtr.ReadStructure<NativeMethods.MP4TagTrack>();
955+
}
956+
947957
if (this.TrackNumber.Value != trackInfo.index || this.TotalTracks != trackInfo.total)
948958
{
949959
trackInfo.index = this.TrackNumber.Value;

0 commit comments

Comments
 (0)