Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2016-06-22 01:44:26 +0300
committerCampbell Barton <ideasman42@gmail.com>2016-06-22 01:44:26 +0300
commit63006c88a1527c9199b9db0f6f22309781eaa4c3 (patch)
tree653e7d4ab8f8785b51368214394dca3b0ae34859 /source/blender
parent6fbe6eb033699a1fd5d3f3e5159d464ab0f97284 (diff)
writefile: use const for old address
Also remove temp preview overwriting.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenloader/intern/readfile.c2
-rw-r--r--source/blender/blenloader/intern/writefile.c65
-rw-r--r--source/blender/makesdna/DNA_sdna_types.h2
3 files changed, 34 insertions, 35 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 5c7b664e547..689a975e19f 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -8519,7 +8519,7 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath)
struct BHeadSort {
BHead *bhead;
- void *old;
+ const void *old;
};
static int verg_bheadsort(const void *v1, const void *v2)
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 327b7b5aed4..b5a2115fa5f 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -449,7 +449,9 @@ static int endwrite(WriteData *wd)
/* ********** WRITE FILE ****************** */
-static void writestruct_at_address(WriteData *wd, int filecode, const char *structname, int nr, void *adr, void *data)
+static void writestruct_at_address(
+ WriteData *wd, int filecode, const char *structname, int nr,
+ const void *adr, const void *data)
{
BHead bh;
const short *sp;
@@ -476,7 +478,9 @@ static void writestruct_at_address(WriteData *wd, int filecode, const char *stru
mywrite(wd, data, bh.len);
}
-static void writestruct(WriteData *wd, int filecode, const char *structname, int nr, void *adr)
+static void writestruct(
+ WriteData *wd, int filecode, const char *structname, int nr,
+ const void *adr)
{
writestruct_at_address(wd, filecode, structname, nr, adr, adr);
}
@@ -493,7 +497,7 @@ static void writedata(WriteData *wd, int filecode, int len, const void *adr) /*
/* init BHead */
bh.code = filecode;
- bh.old = (void *)adr; /* this is safe to cast from const */
+ bh.old = adr;
bh.nr = 1;
bh.SDNAnr = 0;
bh.len = len;
@@ -503,9 +507,9 @@ static void writedata(WriteData *wd, int filecode, int len, const void *adr) /*
}
/* use this to force writing of lists in same order as reading (using link_list) */
-static void writelist(WriteData *wd, int filecode, const char *structname, ListBase *lb)
+static void writelist(WriteData *wd, int filecode, const char *structname, const ListBase *lb)
{
- Link *link = lb->first;
+ const Link *link = lb->first;
while (link) {
writestruct(wd, filecode, structname, 1, link);
@@ -515,10 +519,10 @@ static void writelist(WriteData *wd, int filecode, const char *structname, ListB
/* *************** writing some direct data structs used in more code parts **************** */
/*These functions are used by blender's .blend system for file saving/loading.*/
-void IDP_WriteProperty_OnlyData(IDProperty *prop, void *wd);
-void IDP_WriteProperty(IDProperty *prop, void *wd);
+void IDP_WriteProperty_OnlyData(const IDProperty *prop, void *wd);
+void IDP_WriteProperty(const IDProperty *prop, void *wd);
-static void IDP_WriteArray(IDProperty *prop, void *wd)
+static void IDP_WriteArray(const IDProperty *prop, void *wd)
{
/*REMEMBER to set totalen to len in the linking code!!*/
if (prop->data.pointer) {
@@ -534,11 +538,11 @@ static void IDP_WriteArray(IDProperty *prop, void *wd)
}
}
-static void IDP_WriteIDPArray(IDProperty *prop, void *wd)
+static void IDP_WriteIDPArray(const IDProperty *prop, void *wd)
{
/*REMEMBER to set totalen to len in the linking code!!*/
if (prop->data.pointer) {
- IDProperty *array = prop->data.pointer;
+ const IDProperty *array = prop->data.pointer;
int a;
writestruct(wd, DATA, "IDProperty", prop->len, array);
@@ -548,13 +552,13 @@ static void IDP_WriteIDPArray(IDProperty *prop, void *wd)
}
}
-static void IDP_WriteString(IDProperty *prop, void *wd)
+static void IDP_WriteString(const IDProperty *prop, void *wd)
{
/*REMEMBER to set totalen to len in the linking code!!*/
writedata(wd, DATA, prop->len, prop->data.pointer);
}
-static void IDP_WriteGroup(IDProperty *prop, void *wd)
+static void IDP_WriteGroup(const IDProperty *prop, void *wd)
{
IDProperty *loop;
@@ -564,7 +568,7 @@ static void IDP_WriteGroup(IDProperty *prop, void *wd)
}
/* Functions to read/write ID Properties */
-void IDP_WriteProperty_OnlyData(IDProperty *prop, void *wd)
+void IDP_WriteProperty_OnlyData(const IDProperty *prop, void *wd)
{
switch (prop->type) {
case IDP_GROUP:
@@ -582,13 +586,13 @@ void IDP_WriteProperty_OnlyData(IDProperty *prop, void *wd)
}
}
-void IDP_WriteProperty(IDProperty *prop, void *wd)
+void IDP_WriteProperty(const IDProperty *prop, void *wd)
{
writestruct(wd, DATA, "IDProperty", 1, prop);
IDP_WriteProperty_OnlyData(prop, wd);
}
-static void write_iddata(void *wd, ID *id)
+static void write_iddata(void *wd, const ID *id)
{
/* ID_WM's id->properties are considered runtime only, and never written in .blend file. */
if (id->properties && !ELEM(GS(id->name), ID_WM)) {
@@ -596,29 +600,24 @@ static void write_iddata(void *wd, ID *id)
}
}
-static void write_previews(WriteData *wd, PreviewImage *prv)
+static void write_previews(WriteData *wd, const PreviewImage *prv_orig)
{
/* Never write previews when doing memsave (i.e. undo/redo)! */
- if (prv && !wd->current) {
- short w = prv->w[1];
- short h = prv->h[1];
- unsigned int *rect = prv->rect[1];
+ if (prv_orig && !wd->current) {
+ PreviewImage prv = *prv_orig;
/* don't write out large previews if not requested */
if (!(U.flag & USER_SAVE_PREVIEWS)) {
- prv->w[1] = 0;
- prv->h[1] = 0;
- prv->rect[1] = NULL;
- }
- writestruct(wd, DATA, "PreviewImage", 1, prv);
- if (prv->rect[0]) writedata(wd, DATA, prv->w[0] * prv->h[0] * sizeof(unsigned int), prv->rect[0]);
- if (prv->rect[1]) writedata(wd, DATA, prv->w[1] * prv->h[1] * sizeof(unsigned int), prv->rect[1]);
-
- /* restore preview, we still want to keep it in memory even if not saved to file */
- if (!(U.flag & USER_SAVE_PREVIEWS) ) {
- prv->w[1] = w;
- prv->h[1] = h;
- prv->rect[1] = rect;
+ prv.w[1] = 0;
+ prv.h[1] = 0;
+ prv.rect[1] = NULL;
+ }
+ writestruct_at_address(wd, DATA, "PreviewImage", 1, prv_orig, &prv);
+ if (prv.rect[0]) {
+ writedata(wd, DATA, prv.w[0] * prv.h[0] * sizeof(unsigned int), prv.rect[0]);
+ }
+ if (prv.rect[1]) {
+ writedata(wd, DATA, prv.w[1] * prv.h[1] * sizeof(unsigned int), prv.rect[1]);
}
}
}
diff --git a/source/blender/makesdna/DNA_sdna_types.h b/source/blender/makesdna/DNA_sdna_types.h
index 28204ebeb88..cb7a371c7c5 100644
--- a/source/blender/makesdna/DNA_sdna_types.h
+++ b/source/blender/makesdna/DNA_sdna_types.h
@@ -67,7 +67,7 @@ typedef struct SDNA {
#
typedef struct BHead {
int code, len;
- void *old;
+ const void *old;
int SDNAnr, nr;
} BHead;
#