Hi,

Another one from the TSVN crash reports:

Several reports because of a call to SVN_ERR_MALFUNCTION_NO_RETURN() when doing an 'svn st'. Stacktrace attached.

The call is in libsvn_subr/token.c:51

int
svn_token__from_word_strict(const svn_token_map_t *map,
                            const char *word)
{
  int value = svn_token__from_word(map, word);

  if (value == SVN_TOKEN_UNKNOWN)
    SVN_ERR_MALFUNCTION_NO_RETURN();

  return value;
}


but there's already a function svn_token__from_word_err() which does not abort but return an error.

For an operation that's maybe the most used one (svn st) I'd rather have an error than an abort().

Stefan

--
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
>       libsvn_tsvn32.dll!svn_token__from_word_strict(const svn_token_map_t * 
> map=0x6f578ed4, const char * word=0x007bdde8) Line 51     C
        libsvn_tsvn32.dll!svn_sqlite__column_token(svn_sqlite__stmt_t * 
stmt=0x00765bd8, int column=4, const svn_token_map_t * map=0x6f578ed4) Line 509 
C
        libsvn_tsvn32.dll!read_children_info(void * baton=0x00765bd8, 
svn_wc__db_wcroot_t * wcroot=0x007654f0, const char * dir_relpath=0x007750e8, 
apr_pool_t * scratch_pool=0x00774ac0) Line 6848     C
        libsvn_tsvn32.dll!run_txn(void * baton=0x0216ecf0, svn_sqlite__db_t * 
db=0x00765178, apr_pool_t * scratch_pool=0x00774ac0) Line 185     C
        libsvn_tsvn32.dll!svn_sqlite__with_lock(svn_sqlite__db_t * 
db=0x00765178, svn_error_t * (void *, svn_sqlite__db_t *, apr_pool_t *) * 
cb_func=0x6f425ba0, void * cb_baton=0x0216ecf0, apr_pool_t * 
scratch_pool=0x00774ac0) Line 1111    C
        libsvn_tsvn32.dll!svn_wc__db_with_txn(svn_wc__db_wcroot_t * 
wcroot=0x007654f0, const char * local_relpath=0x007750e8, svn_error_t * (void 
*, svn_wc__db_wcroot_t *, const char *, apr_pool_t *) * cb_func=0x6f422c50, 
void * cb_baton=0x0216ed30, apr_pool_t * scratch_pool=0x00774ac0) Line 203      
  C
        libsvn_tsvn32.dll!svn_wc__db_read_children_info(apr_hash_t * * 
nodes=0x0216ed78, apr_hash_t * * conflicts=0x0216ed70, svn_wc__db_t * 
db=0x00764b80, const char * dir_abspath=0x00764d18, apr_pool_t * 
result_pool=0x00772ab8, apr_pool_t * scratch_pool=0x00774ac0) Line 7068   C
        libsvn_tsvn32.dll!get_dir_status(const walk_status_baton * 
wb=0x0216edfc, const char * local_abspath=0x00764d18, const char * 
selected=0x00000000, int skip_this_dir=0, const char * 
parent_repos_root_url=0x00000000, const char * parent_repos_relpath=0x00000000, 
const char * parent_repos_uuid=0x00000000, const svn_wc__db_info_t * 
dir_info=0x00765a08, const svn_io_dirent2_t * dirent=0x00765bc0, const 
apr_array_header_t * ignore_patterns=0x00765898, svn_depth_t 
depth=svn_depth_immediates, int get_all=1, int no_ignore=1, svn_error_t * (void 
*, const char *, const svn_wc_status3_t *, apr_pool_t *) * 
status_func=0x6f34e5b0, void * status_baton=0x0216ee90, svn_error_t * (void *) 
* cancel_func=0x009d9010, void * cancel_baton=0x00741858, apr_pool_t * 
scratch_pool=0x00764a80) Line 1067       C
        libsvn_tsvn32.dll!svn_wc__internal_walk_status(svn_wc__db_t * 
db=0x00765a08, const char * local_abspath=0x00000000, svn_depth_t 
depth=svn_depth_immediates, int get_all=1, int no_ignore=1, int 
ignore_text_mods=0, const apr_array_header_t * ignore_patterns=0x00765898, 
svn_error_t * (void *, const char *, const svn_wc_status3_t *, apr_pool_t *) * 
status_func=0x6f34e5b0, void * status_baton=0x0216ee90, svn_error_t * (void *) 
* cancel_func=0x009d9010, void * cancel_baton=0x00741858, apr_pool_t * 
scratch_pool=0x00764a80) Line 2421      C
        libsvn_tsvn32.dll!svn_client_status5(long * result_rev=0x00000000, 
svn_client_ctx_t * ctx=0x00764b10, const char * path=0x003afcb8, const 
svn_opt_revision_t * revision=0x0216ef24, svn_depth_t 
depth=svn_depth_immediates, int get_all=1, int update=0, int no_ignore=1, int 
ignore_externals=0, int depth_as_sticky=1, const apr_array_header_t * 
changelists=0x00000000, svn_error_t * (void *, const char *, const 
svn_client_status_t *, apr_pool_t *) * status_func=0x009cb360, void * 
status_baton=0x007f9ae8, apr_pool_t * pool=0x00764a80) Line 478    C

Reply via email to