<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/DiscIO/DiscScrubber.h, branch release-prep-2412</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Added CopyReader to BlobReader and all subclasses</title>
<updated>2023-10-01T13:04:06+00:00</updated>
<author>
<name>LillyJadeKatrin</name>
<email>lilly.kitty.1988@gmail.com</email>
</author>
<published>2023-07-07T12:31:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=335cf4f2db4160ebbf387aeb19dc637182c91c5a'/>
<id>335cf4f2db4160ebbf387aeb19dc637182c91c5a</id>
<content type='text'>
A deep-copy method CopyReader has been added to BlobReader (virtual) and all of its subclasses (override). This should create a second BlobReader to open the same set of data but with an independent read pointer so that it doesn't interfere with any reads done on the original Reader.

As part of this, IOFile has added code to create a deep copy IOFile pointer onto the same file, with code based on the platform in question to find the file ID from the file pointer and open a new one. There has also been a small piece added to FileInfo to enable a deep copy, but its only subclass at this time already had a copy constructor so this was relatively minor.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A deep-copy method CopyReader has been added to BlobReader (virtual) and all of its subclasses (override). This should create a second BlobReader to open the same set of data but with an independent read pointer so that it doesn't interfere with any reads done on the original Reader.

As part of this, IOFile has added code to create a deep copy IOFile pointer onto the same file, with code based on the platform in question to find the file ID from the file pointer and open a new one. There has also been a small piece added to FileInfo to enable a deep copy, but its only subclass at this time already had a copy constructor so this was relatively minor.
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Don't keep volume pointer in DiscScrubber</title>
<updated>2023-08-19T15:30:22+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2023-08-19T15:14:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=0f64df3e3e17e5dfc91a7fb99f3de641b1c33ae5'/>
<id>0f64df3e3e17e5dfc91a7fb99f3de641b1c33ae5</id>
<content type='text'>
Keeping the pointer creates use-after-free opportunities, and we don't
have much reason to keep it around anyway.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Keeping the pointer creates use-after-free opportunities, and we don't
have much reason to keep it around anyway.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix all uninitialized variable warnings (C26495)</title>
<updated>2021-10-13T19:32:16+00:00</updated>
<author>
<name>Pokechu22</name>
<email>Pokechu022@gmail.com</email>
</author>
<published>2021-09-04T04:43:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=78bfd25964206a1f0a34170fdd90ca1a8ce242db'/>
<id>78bfd25964206a1f0a34170fdd90ca1a8ce242db</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>treewide: convert GPLv2+ license info to SPDX tags</title>
<updated>2021-07-05T02:35:56+00:00</updated>
<author>
<name>Pierre Bourdon</name>
<email>delroth@gmail.com</email>
</author>
<published>2021-07-05T01:22:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=e149ad4f0a9874f354221a7fc76d8f1841e47808'/>
<id>e149ad4f0a9874f354221a7fc76d8f1841e47808</id>
<content type='text'>
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Move scrubbing code out of ConvertToGCZ</title>
<updated>2020-04-24T13:11:20+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2020-04-10T15:40:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=6ffcbcee70c043a0d158d87458f99d20eddbb939'/>
<id>6ffcbcee70c043a0d158d87458f99d20eddbb939</id>
<content type='text'>
This way, scrubbing can also be performed when converting
to other formats.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This way, scrubbing can also be performed when converting
to other formats.
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Add GameCube disc scrubbing support</title>
<updated>2020-04-24T13:10:36+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2020-04-10T13:53:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=04c7892b93f4ae129609060be5347628fa29eced'/>
<id>04c7892b93f4ae129609060be5347628fa29eced</id>
<content type='text'>
The code was actually already rather well adapted for this.
We more or less just have to skip ParseDisc and run
ParsePartitionData directly. This required the PartitionHeader
struct to be removed (which wasn't that useful anyway).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code was actually already rather well adapted for this.
We more or less just have to skip ParseDisc and run
ParsePartitionData directly. This required the PartitionHeader
struct to be removed (which wasn't that useful anyway).
</pre>
</div>
</content>
</entry>
<entry>
<title>DiscIO: Allow converting from formats other than ISO and GCZ</title>
<updated>2020-04-24T13:10:35+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2020-04-04T18:56:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=8a9597e32e98707d5bcdc1a41d8c45e3174d4047'/>
<id>8a9597e32e98707d5bcdc1a41d8c45e3174d4047</id>
<content type='text'>
The constant DESIRED_BUFFER_SIZE was determined by multiplying the
old hardcoded value 32 with the default GCZ block size 16 KiB.
Not sure if it actually is the best value, but it seems fine.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The constant DESIRED_BUFFER_SIZE was determined by multiplying the
old hardcoded value 32 with the default GCZ block size 16 KiB.
Not sure if it actually is the best value, but it seems fine.
</pre>
</div>
</content>
</entry>
<entry>
<title>VolumeVerifier: Check whether invalid blocks are unused</title>
<updated>2019-04-09T12:18:46+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2019-03-30T15:20:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=a469fb315037d455884f25acb39bad57bc76e4ff'/>
<id>a469fb315037d455884f25acb39bad57bc76e4ff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor DiscScrubber::MarkAsUsedE</title>
<updated>2018-09-20T21:23:06+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2018-09-20T17:32:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=ce3e0fc091efccf84145fead400edf73f8effd8e'/>
<id>ce3e0fc091efccf84145fead400edf73f8effd8e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Filesystem: Replace GetFileList()</title>
<updated>2017-06-14T13:23:48+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2015-08-08T17:59:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=87916fe09979eea276438deef83ba85fcace91e0'/>
<id>87916fe09979eea276438deef83ba85fcace91e0</id>
<content type='text'>
Instead of expecting callers to know how the size of directory file infos
relates to which files are in which directories, filesystems now offer a
GetRoot() method, and file infos offer a way to get their children. As
a bonus, m_FileInfoVector no longer has to be created and kept around
in RAM. Only the file info objects that actually are used are created.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of expecting callers to know how the size of directory file infos
relates to which files are in which directories, filesystems now offer a
GetRoot() method, and file infos offer a way to get their children. As
a bonus, m_FileInfoVector no longer has to be created and kept around
in RAM. Only the file info objects that actually are used are created.
</pre>
</div>
</content>
</entry>
</feed>
