[Pcsclite-cvs-commit] r6369 - /trunk/PCSC/src/winscard.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Fri Jun 29 09:19:07 UTC 2012


Author: rousseau
Date: Fri Jun 29 09:19:07 2012
New Revision: 6369

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=6369
Log:
SCardReconnect(): use an exit block

goto exit; instead of a direct return SCARD_E_*;

This will allow to factorize exit code.

Modified:
    trunk/PCSC/src/winscard.c

Modified: trunk/PCSC/src/winscard.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard.c?rev=6369&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Fri Jun 29 09:19:07 2012
@@ -534,14 +534,14 @@
 	 */
 	rv = RFCheckReaderStatus(rContext);
 	if (rv != SCARD_S_SUCCESS)
-		return rv;
+		goto exit;
 
 	/*
 	 * Make sure no one has a lock on this reader
 	 */
 	rv = RFCheckSharing(hCard, rContext);
 	if (rv != SCARD_S_SUCCESS)
-		return rv;
+		goto exit;
 
 	if (dwInitialization == SCARD_RESET_CARD ||
 		dwInitialization == SCARD_UNPOWER_CARD)
@@ -593,13 +593,15 @@
 			if (rv == SCARD_W_REMOVED_CARD)
 			{
 				rContext->readerState->readerState = SCARD_ABSENT;
-				return SCARD_E_NO_SMARTCARD;
+				rv = SCARD_E_NO_SMARTCARD;
+				goto exit;
 			}
 			else
 			{
 				rContext->readerState->readerState =
 					SCARD_PRESENT | SCARD_SWALLOWED;
-				return SCARD_W_UNRESPONSIVE_CARD;
+				rv = SCARD_W_UNRESPONSIVE_CARD;
+				goto exit;
 			}
 		}
 	}
@@ -609,11 +611,17 @@
 			uint32_t readerState = rContext->readerState->readerState;
 
 			if (readerState & SCARD_ABSENT)
-				return SCARD_E_NO_SMARTCARD;
+			{
+				rv = SCARD_E_NO_SMARTCARD;
+				goto exit;
+			}
 
 			if ((readerState & SCARD_PRESENT)
 				&& (readerState & SCARD_SWALLOWED))
-				return SCARD_W_UNRESPONSIVE_CARD;
+			{
+				rv = SCARD_W_UNRESPONSIVE_CARD;
+				goto exit;
+			}
 		}
 
 	/*******************************************
@@ -653,13 +661,15 @@
 				if (SET_PROTOCOL_PPS_FAILED == ret)
 				{
 					(void)pthread_mutex_unlock(rContext->mMutex);
-					return SCARD_W_UNRESPONSIVE_CARD;
+					rv = SCARD_W_UNRESPONSIVE_CARD;
+					goto exit;
 				}
 
 				if (SET_PROTOCOL_WRONG_ARGUMENT == ret)
 				{
 					(void)pthread_mutex_unlock(rContext->mMutex);
-					return SCARD_E_PROTO_MISMATCH;
+					rv = SCARD_E_PROTO_MISMATCH;
+					goto exit;
 				}
 
 				/* use negotiated protocol */
@@ -672,7 +682,10 @@
 				(void)pthread_mutex_unlock(rContext->mMutex);
 
 				if (! (dwPreferredProtocols & rContext->readerState->cardProtocol))
-					return SCARD_E_PROTO_MISMATCH;
+				{
+					rv = SCARD_E_PROTO_MISMATCH;
+					goto exit;
+				}
 			}
 		}
 	}
@@ -716,7 +729,8 @@
 				(void)RFLockSharing(hCard, rContext);
 			} else
 			{
-				return SCARD_E_SHARING_VIOLATION;
+				rv = SCARD_E_SHARING_VIOLATION;
+				goto exit;
 			}
 		}
 	} else if (dwShareMode == SCARD_SHARE_SHARED)
@@ -750,7 +764,10 @@
 			rContext->contexts = PCSCLITE_SHARING_LAST_CONTEXT;
 		}
 	} else
-		return SCARD_E_INVALID_VALUE;
+	{
+		rv = SCARD_E_INVALID_VALUE;
+		goto exit;
+	}
 
 	/*
 	 * Clear a previous event to the application
@@ -762,7 +779,10 @@
 	 */
 	rContext->readerState->readerSharing = rContext->contexts;
 
-	return SCARD_S_SUCCESS;
+	rv = SCARD_S_SUCCESS;
+
+exit:
+	return rv;
 }
 
 LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition)




More information about the Pcsclite-cvs-commit mailing list