mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 01:16:31 +03:00
Put something into the msg object if we fail to get a valid string out of the db
This commit is contained in:
@@ -1081,6 +1081,7 @@ pub fn dc_get_chat_msgs(
|
|||||||
let process_rows = |rows: rusqlite::MappedRows<_>| {
|
let process_rows = |rows: rusqlite::MappedRows<_>| {
|
||||||
for row in rows {
|
for row in rows {
|
||||||
let (curr_id, ts) = row?;
|
let (curr_id, ts) = row?;
|
||||||
|
//println!("{}", curr_id);
|
||||||
if curr_id as u32 == marker1before {
|
if curr_id as u32 == marker1before {
|
||||||
ret.add_id(1);
|
ret.add_id(1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -436,8 +436,12 @@ pub unsafe fn dc_msg_get_timestamp(msg: *const dc_msg_t) -> i64 {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//pub fn dc_msg_load_from_db_r(context: &'a Context, id: u32) -> Result<mut dc_msg_t> {
|
||||||
|
//}
|
||||||
|
|
||||||
pub fn dc_msg_load_from_db<'a>(msg: *mut dc_msg_t<'a>, context: &'a Context, id: u32) -> bool {
|
pub fn dc_msg_load_from_db<'a>(msg: *mut dc_msg_t<'a>, context: &'a Context, id: u32) -> bool {
|
||||||
if msg.is_null() {
|
if msg.is_null() {
|
||||||
|
println!("xxx msg is null {}", id);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -472,7 +476,15 @@ pub fn dc_msg_load_from_db<'a>(msg: *mut dc_msg_t<'a>, context: &'a Context, id:
|
|||||||
(*msg).type_0 = row.get(12)?;
|
(*msg).type_0 = row.get(12)?;
|
||||||
(*msg).state = row.get(13)?;
|
(*msg).state = row.get(13)?;
|
||||||
(*msg).is_dc_message = row.get(14)?;
|
(*msg).is_dc_message = row.get(14)?;
|
||||||
(*msg).text = row.get::<_, Option<String>>(15)?;
|
println!("Before2 text: {}", id);
|
||||||
|
(*msg).text = match row.get(15) {
|
||||||
|
Ok(text) => Some(text),
|
||||||
|
Err(e) => {
|
||||||
|
warn!(context, 0, "dc_msg_load_from_db: could not get text column for id {} because of {}", id, e);
|
||||||
|
Some("[ Could not read from db ]".to_string())
|
||||||
|
}
|
||||||
|
};
|
||||||
|
println!("After text: {}", id);
|
||||||
(*msg).param = row.get::<_, String>(16)?.parse().unwrap_or_default();
|
(*msg).param = row.get::<_, String>(16)?.parse().unwrap_or_default();
|
||||||
(*msg).starred = row.get(17)?;
|
(*msg).starred = row.get(17)?;
|
||||||
(*msg).hidden = row.get(18)?;
|
(*msg).hidden = row.get(18)?;
|
||||||
@@ -491,8 +503,12 @@ pub fn dc_msg_load_from_db<'a>(msg: *mut dc_msg_t<'a>, context: &'a Context, id:
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
// HERE WE ARE!
|
||||||
res.is_ok()
|
if let Err(e) = res {
|
||||||
|
warn!(context, 0, "Error in msg_load_from_db for id {} because of {}", id, e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn dc_get_mime_headers(context: &Context, msg_id: uint32_t) -> *mut libc::c_char {
|
pub unsafe fn dc_get_mime_headers(context: &Context, msg_id: uint32_t) -> *mut libc::c_char {
|
||||||
@@ -628,14 +644,17 @@ pub fn dc_star_msgs(
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn dc_get_msg<'a>(context: &'a Context, msg_id: uint32_t) -> *mut dc_msg_t<'a> {
|
pub unsafe fn dc_get_msg<'a>(context: &'a Context, msg_id: uint32_t) -> *mut dc_msg_t<'a> {
|
||||||
let mut success: libc::c_int = 0i32;
|
let mut success = false;
|
||||||
let obj: *mut dc_msg_t = dc_msg_new_untyped(context);
|
let obj: *mut dc_msg_t = dc_msg_new_untyped(context);
|
||||||
if dc_msg_load_from_db(obj, context, msg_id) {
|
if dc_msg_load_from_db(obj, context, msg_id) {
|
||||||
success = 1i32
|
success = true
|
||||||
}
|
}
|
||||||
if 0 != success {
|
|
||||||
|
|
||||||
|
if success {
|
||||||
obj
|
obj
|
||||||
} else {
|
} else {
|
||||||
|
println!("No success for {}", msg_id);
|
||||||
dc_msg_unref(obj);
|
dc_msg_unref(obj);
|
||||||
0 as *mut dc_msg_t
|
0 as *mut dc_msg_t
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user