aboutsummaryrefslogtreecommitdiffstats
path: root/multimedia/vic
diff options
context:
space:
mode:
authorfenner <fenner@FreeBSD.org>1998-02-20 03:03:15 +0800
committerfenner <fenner@FreeBSD.org>1998-02-20 03:03:15 +0800
commitc8f9359107e4626ba1dbca92d72a210f2e1d65ee (patch)
treea93c24d347796ab71848fb17ef00043f2a91b5cc /multimedia/vic
parent4e1797f4040cc6ee288939d1fd27f5829bd7be51 (diff)
downloadfreebsd-ports-gnome-c8f9359107e4626ba1dbca92d72a210f2e1d65ee.tar.gz
freebsd-ports-gnome-c8f9359107e4626ba1dbca92d72a210f2e1d65ee.tar.zst
freebsd-ports-gnome-c8f9359107e4626ba1dbca92d72a210f2e1d65ee.zip
Fix memory leaks.
Diffstat (limited to 'multimedia/vic')
-rw-r--r--multimedia/vic/files/patch-ag96
1 files changed, 96 insertions, 0 deletions
diff --git a/multimedia/vic/files/patch-ag b/multimedia/vic/files/patch-ag
new file mode 100644
index 000000000000..b7c10c120ee8
--- /dev/null
+++ b/multimedia/vic/files/patch-ag
@@ -0,0 +1,96 @@
+--- vw.cc.orig Mon Jul 22 13:12:31 1996
++++ vw.cc Tue Dec 17 16:35:57 1996
+@@ -248,8 +248,6 @@
+ /*
+ * Wrap segment in an ximage
+ */
+- image_ = XCreateImage(dpy_, Tk_Visual(tk), Tk_Depth(tk), ZPixmap,
+- 0, (char*)0, width_, height_, 8, 0);
+ image_->obdata = (char*)&shminfo_;
+ image_->data = shminfo_.shmaddr;
+ }
+--- Tcl.h.orig Sat Mar 16 13:14:34 1996
++++ Tcl.h Tue Dec 17 14:39:45 1996
+@@ -53,7 +53,8 @@
+ inline int dark() const { return (tcl_ == 0); }
+ inline Tcl_Interp* interp() const { return (tcl_); }
+ inline char* result() const { return (tcl_->result); }
+- inline void result(const char* p) { tcl_->result = (char*)p; }
++ inline void result(const char* p, Tcl_FreeProc* freeProc = TCL_STATIC)
++ { Tcl_SetResult(tcl_, (char *)p, freeProc); }
+ void resultf(const char* fmt, ...);
+ inline void CreateCommand(const char* cmd, Tcl_CmdProc* cproc,
+ ClientData cd = 0,
+--- source.cc.orig Thu Apr 4 07:05:45 1996
++++ source.cc Tue Dec 17 14:38:44 1996
+@@ -251,8 +251,7 @@
+ return (TCL_OK);
+ }
+ if (strcmp(argv[1], "addr") == 0) {
+- strcpy(wrk, InetNtoa(addr_));
+- tcl.result(wrk);
++ tcl.result(InetNtoa(addr_), TCL_DYNAMIC);
+ return (TCL_OK);
+ }
+ if (strcmp(argv[1], "srcid") == 0) {
+--- Tcl.cc.orig Tue Apr 2 20:53:27 1996
++++ Tcl.cc Tue Dec 17 15:45:30 1996
+@@ -162,6 +162,8 @@
+ Tcl& tcl = Tcl::instance();
+ if (!tcl.dark())
+ tcl.DeleteCommand(name_);
++ if (name_ != 0)
++ delete name_;
+ TclObject** p;
+ for (p = &all_; *p != this; p = &(*p)->next_)
+ ;
+@@ -197,8 +199,9 @@
+ void TclObject::setproc(const char* s)
+ {
+ Tcl& tcl = Tcl::instance();
+- if (name_ != 0 && !tcl.dark()) {
+- tcl.DeleteCommand(name_);
++ if (name_ != 0) {
++ if (!tcl.dark())
++ tcl.DeleteCommand(name_);
+ delete name_;
+ }
+ int n = strlen(s);
+--- decoder.cc.orig Wed Jun 26 17:28:40 1996
++++ decoder.cc Tue Dec 17 15:55:42 1996
+@@ -74,6 +74,8 @@
+
+ Decoder::~Decoder()
+ {
++ if (rvts_)
++ delete rvts_;
+ }
+
+ int Decoder::command(int argc, const char*const* argv)
+--- encoder-h261.cc.orig Mon Jul 22 13:12:53 1996
++++ encoder-h261.cc Tue Dec 17 16:01:47 1996
+@@ -118,6 +118,7 @@
+ void setq(int q);
+ protected:
+ H261Encoder(int ft);
++ ~H261Encoder();
+ int encode(const VideoFrame*, const u_int8_t *crvec);
+ int command(int argc, const char*const* argv);
+ void encode_blk(const short* blk, const char* lm);
+@@ -208,6 +209,16 @@
+ for (int q = 0; q < 32; ++q) {
+ llm_[q] = 0;
+ clm_[q] = 0;
++ }
++}
++
++H261Encoder::~H261Encoder()
++{
++ for (int q = 0; q < 32; ++q) {
++ if (llm_[q] != 0)
++ delete llm_[q];
++ if (clm_[q] != 0)
++ delete clm_[q];
+ }
+ }
+