Posted to tcl by venks at Wed Feb 11 03:16:06 GMT 2015view pretty

--- generic/tclIO.c
+++ generic/tclIO.c
@@ -1913,10 +1913,11 @@
     if (chanPtr->typePtr == NULL) {
 	ckfree(chanPtr);
     }
 }
 
+<<<<<<< BEGIN MERGE CONFLICT: local copy shown first <<<<<<<<<<<<<<<
 static void
 ChannelFree(
     Channel *chanPtr)
 {
     if (chanPtr->refCount == 0) {
@@ -1924,10 +1925,25 @@
 	return;
     }
     chanPtr->typePtr = NULL;
 }
 
+======= COMMON ANCESTOR content follows ============================
+
+======= MERGED IN content follows ==================================
+static void
+ChannelFree(
+    Channel *chanPtr)
+{
+    if (chanPtr->refCount == 0) {
+	ckfree((char *)chanPtr);
+	return;
+    }
+    chanPtr->typePtr = NULL;
+}
+
+>>>>>>> END MERGE CONFLICT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 /*
  *----------------------------------------------------------------------
  *
  * Tcl_UnstackChannel --
  *
@@ -2068,12 +2084,34 @@
 
 	/*
 	 * Close and free the channel driver state.
 	 */
 
+<<<<<<< BEGIN MERGE CONFLICT: local copy shown first <<<<<<<<<<<<<<<
 	result = ChanClose(chanPtr, interp);
 	ChannelFree(chanPtr);
+======= COMMON ANCESTOR content follows ============================
+	if (chanPtr->typePtr->closeProc != TCL_CLOSE2PROC) {
+	    result = (chanPtr->typePtr->closeProc)(chanPtr->instanceData,
+		    interp);
+	} else {
+	    result = (chanPtr->typePtr->close2Proc)(chanPtr->instanceData,
+		    interp, 0);
+	}
+
+	chanPtr->typePtr = NULL;
+======= MERGED IN content follows ==================================
+	if (chanPtr->typePtr->closeProc != TCL_CLOSE2PROC) {
+	    result = (chanPtr->typePtr->closeProc)(chanPtr->instanceData,
+		    interp);
+	} else {
+	    result = (chanPtr->typePtr->close2Proc)(chanPtr->instanceData,
+		    interp, 0);
+	}
+
+	ChannelFree(chanPtr);
+>>>>>>> END MERGE CONFLICT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 	UpdateInterest(statePtr->topChanPtr);
 
 	if (result != 0) {
 	    Tcl_SetErrno(result);