Blenloader: add api function for accessing packedfile address map
This is needed to move direct_link_packedfile out of readfile.c for T76372.
This commit is contained in:
parent
5086bdfe0b
commit
62e2d92aed
|
@ -177,9 +177,12 @@ bool BLO_write_is_undo(BlendWriter *writer);
|
|||
*/
|
||||
|
||||
void *BLO_read_get_new_data_address(BlendDataReader *reader, const void *old_address);
|
||||
void *BLO_read_get_new_packed_address(BlendDataReader *reader, const void *old_address);
|
||||
|
||||
#define BLO_read_data_address(reader, ptr_p) \
|
||||
*((void **)ptr_p) = BLO_read_get_new_data_address((reader), *(ptr_p))
|
||||
#define BLO_read_packed_address(reader, ptr_p) \
|
||||
*((void **)ptr_p) = BLO_read_get_new_packed_address((reader), *(ptr_p))
|
||||
|
||||
typedef void (*BlendReadListFn)(BlendDataReader *reader, void *data);
|
||||
void BLO_read_list_cb(BlendDataReader *reader, struct ListBase *list, BlendReadListFn callback);
|
||||
|
|
|
@ -2631,12 +2631,12 @@ static void direct_link_paint_curve(BlendDataReader *reader, PaintCurve *pc)
|
|||
/** \name Read PackedFile
|
||||
* \{ */
|
||||
|
||||
static PackedFile *direct_link_packedfile(BlendDataReader *reader, PackedFile *oldpf)
|
||||
static PackedFile *direct_link_packedfile(BlendDataReader *reader, PackedFile *pf)
|
||||
{
|
||||
PackedFile *pf = newpackedadr(reader->fd, oldpf);
|
||||
BLO_read_packed_address(reader, &pf);
|
||||
|
||||
if (pf) {
|
||||
pf->data = newpackedadr(reader->fd, pf->data);
|
||||
BLO_read_packed_address(reader, &pf->data);
|
||||
if (pf->data == NULL) {
|
||||
/* We cannot allow a PackedFile with a NULL data field,
|
||||
* the whole code assumes this is not possible. See T70315. */
|
||||
|
@ -11089,6 +11089,11 @@ void *BLO_read_get_new_data_address(BlendDataReader *reader, const void *old_add
|
|||
return newdataadr(reader->fd, old_address);
|
||||
}
|
||||
|
||||
void *BLO_read_get_new_packed_address(BlendDataReader *reader, const void *old_address)
|
||||
{
|
||||
return newpackedadr(reader->fd, old_address);
|
||||
}
|
||||
|
||||
ID *BLO_read_get_new_id_address(BlendLibReader *reader, Library *lib, ID *id)
|
||||
{
|
||||
return newlibadr(reader->fd, lib, id);
|
||||
|
|
Loading…
Reference in New Issue