Fix T37488: Crash with --debug reading userpref.blend

Issue was in fact caused by wrong DNA storage, which
apparently was considering unsigned long as just 4
bytes here.

Now use uint64_t to be sure timestamp does fit into
storage on all the platforms.

Thanks Campbell for help looking in the issue.
This commit is contained in:
Sergey Sharybin 2013-11-18 18:13:23 +06:00
parent 2b0162b622
commit 53753c0ddc
3 changed files with 4 additions and 3 deletions

@ -53,7 +53,7 @@ typedef struct Main {
char name[1024]; /* 1024 = FILE_MAX */
short versionfile, subversionfile; /* see BLENDER_VERSION, BLENDER_SUBVERSION */
short minversionfile, minsubversionfile;
unsigned long build_commit_timestamp; /* commit's timestamp from buildinfo */
uint64_t build_commit_timestamp; /* commit's timestamp from buildinfo */
char build_hash[16]; /* hash from buildinfo */
short recovered; /* indicate the main->name (file) is the recovered one */

@ -48,8 +48,8 @@ typedef struct FileGlobal {
struct Scene *curscene;
int fileflags;
int globalf;
unsigned long build_commit_timestamp; /* commit timestamp from buildinfo */
char build_hash[12]; /* hash from buildinfo */
uint64_t build_commit_timestamp; /* commit timestamp from buildinfo */
char build_hash[16]; /* hash from buildinfo */
/* file path where this was saved, for recover */
char filename[1024]; /* 1024 = FILE_MAX */
} FileGlobal;

@ -32,6 +32,7 @@
#ifndef __KX_PYTHON_MAIN__
#define __KX_PYTHON_MAIN__
#include "BLI_sys_types.h"
#include "BKE_main.h"
#include "DNA_scene_types.h"
extern "C" char *KX_GetPythonMain(struct Scene* scene);