SOURCES: twinkle-memman.patch (NEW), twinkle-dtmf.patch (NEW), twi...

kosmo kosmo at pld-linux.org
Wed Jan 17 13:24:25 CET 2007


Author: kosmo                        Date: Wed Jan 17 12:24:25 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- official patches from http://www.twinklephone.com/

---- Files affected:
SOURCES:
   twinkle-memman.patch (NONE -> 1.1)  (NEW), twinkle-dtmf.patch (NONE -> 1.1)  (NEW), twinkle-invite4xx.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/twinkle-memman.patch
diff -u /dev/null SOURCES/twinkle-memman.patch:1.1
--- /dev/null	Wed Jan 17 13:24:25 2007
+++ SOURCES/twinkle-memman.patch	Wed Jan 17 13:24:20 2007
@@ -0,0 +1,61 @@
+Index: src/audits/memman.cpp
+===================================================================
+--- src/audits/memman.cpp	(revision 223)
++++ src/audits/memman.cpp	(working copy)
+@@ -114,13 +114,22 @@
+ 		return;
+ 	}
+ 
+-	pointer_map.erase(p);
++
+ 	bool array_mismatch = (is_array != i->second.is_array);
+-	mtx_memman.unlock();
+ 
+ 	// Check mixing of array new/delete
++	// NOTE: after the pointer has been erased from pointer_map, the
++	//       iterator i is invalid.
++	//       The mutex mtx_memman should be unlocked before logging to
++	//       avoid dead locks.
+ 	if (array_mismatch) {
+ 		num_array_mixing++;
++		string allocation_filename = i->second.filename;
++		int allocation_lineno = i->second.lineno;
++		bool allocation_is_array = i->second.is_array;
++		pointer_map.erase(p);
++		mtx_memman.unlock();
++		
+ 		log_file->write_header("t_memman::trc_delete",
+ 			LOG_MEMORY, LOG_WARNING);
+ 		log_file->write_raw(filename);
+@@ -130,21 +139,24 @@
+ 		log_file->write_raw(ptr2str(p));
+ 		log_file->write_raw(" is deleted ");
+ 		if (is_array) {
+-			log_file->write_raw(" as array (delete []).\n");
++			log_file->write_raw("as array (delete []).\n");
+ 		} else {
+-			log_file->write_raw(" normally (delete).\n");
++			log_file->write_raw("normally (delete).\n");
+ 		}
+ 		log_file->write_raw("But it was allocated ");
+-		if (i->second.is_array) {
+-			log_file->write_raw(" as array (new []) \n");
++		if (allocation_is_array) {
++			log_file->write_raw("as array (new []) \n");
+ 		} else {
+-			log_file->write_raw(" normally (new) \n");
++			log_file->write_raw("normally (new) \n");
+ 		}
+-		log_file->write_raw(i->second.filename);
++		log_file->write_raw(allocation_filename);
+ 		log_file->write_raw(", line ");
+-		log_file->write_raw(i->second.lineno);
++		log_file->write_raw(allocation_lineno);
+ 		log_file->write_endl();
+ 		log_file->write_footer();
++	} else {
++		pointer_map.erase(p);
++		mtx_memman.unlock();
+ 	}
+ }
+ 

================================================================
Index: SOURCES/twinkle-dtmf.patch
diff -u /dev/null SOURCES/twinkle-dtmf.patch:1.1
--- /dev/null	Wed Jan 17 13:24:25 2007
+++ SOURCES/twinkle-dtmf.patch	Wed Jan 17 13:24:20 2007
@@ -0,0 +1,40 @@
+Index: src/session.cpp
+===================================================================
+--- src/session.cpp	(revision 223)
++++ src/session.cpp	(working copy)
+@@ -653,18 +653,19 @@
+ 		case DTMF_AUTO:
+ 		case DTMF_INBAND:
+ 			get_line()->ci_set_dtmf_supported(true, true);
++			ui->cb_dtmf_supported(get_line()->get_line_number());
+ 			break;
+ 		case DTMF_RFC2833:
+ 			get_line()->ci_set_dtmf_supported(false);
++			ui->cb_dtmf_not_supported(get_line()->get_line_number());
+ 			break;
+ 		case DTMF_INFO:
+ 			get_line()->ci_set_dtmf_supported(true, false, true);
++			ui->cb_dtmf_supported(get_line()->get_line_number());
+ 			break;
+ 		default:
+ 			assert(false);
+ 		}
+-		
+-		ui->cb_line_state_changed();
+ 	}
+ 
+ 	audio_rtp_session->run();
+@@ -675,10 +676,10 @@
+ 		MEMMAN_DELETE(audio_rtp_session);
+ 		delete audio_rtp_session;
+ 		audio_rtp_session = NULL;
++	
++		get_line()->ci_set_dtmf_supported(false);
++		ui->cb_line_state_changed();
+ 	}
+-	
+-	get_line()->ci_set_dtmf_supported(false);
+-	ui->cb_line_state_changed();
+ }
+ 
+ t_audio_session *t_session::get_audio_session(void) const {

================================================================
Index: SOURCES/twinkle-invite4xx.patch
diff -u /dev/null SOURCES/twinkle-invite4xx.patch:1.1
--- /dev/null	Wed Jan 17 13:24:25 2007
+++ SOURCES/twinkle-invite4xx.patch	Wed Jan 17 13:24:20 2007
@@ -0,0 +1,16 @@
+Index: src/line.cpp
+===================================================================
+--- src/line.cpp	(revision 225)
++++ src/line.cpp	(working copy)
+@@ -966,9 +966,8 @@
+ 			} else {
+ 				d->recvd_response(r, tuid, tid);
+ 			}
+-		}
+-		
+-		if (r->hdr_cseq.method == INVITE) {
++		} else {
++			d->recvd_response(r, tuid, tid);
+ 			pending_dialogs.remove(d);
+ 			MEMMAN_DELETE(d);
+ 			delete d;
================================================================


More information about the pld-cvs-commit mailing list