Fork of https://developer.mbed.org/users/bscott/code/STM32_USBDevice/

Fork of STM32_USBDevice by Bradley Scott

Branch:
feature_WebUSB
Revision:
78:ba3f68a86e6d
Parent:
77:a98f786d05d4
--- a/USBSerial/USBWebUSBSerial.cpp	Tue Jul 24 13:08:29 2018 +0200
+++ b/USBSerial/USBWebUSBSerial.cpp	Wed Jul 25 09:35:08 2018 +0200
@@ -113,6 +113,13 @@
     createDynamicDescriptors();
 }
 
+USBWebUSBSerial::~USBWebUSBSerial()
+{
+    delete[] m_manufacturerStringDesc;
+    delete[] m_productStringDesc;
+    delete[] m_serialStringDesc;
+}
+
 void USBWebUSBSerial::USBCallback_busReset()
 {
     m_terminalConnected = false;
@@ -510,23 +517,10 @@
     return bosDescriptor;
 }
 
-
-int USBWebUSBSerial::_putc(int c)
+int USBWebUSBSerial::read(uint8_t *buf, uint16_t size)
 {
-    if (!writeBuffered((uint8_t *)&c, 1))
-    {
-        return 0;
-    }
-    return 1;
-}
-
-int USBWebUSBSerial::_getc()
-{
-    uint8_t c = 0;
-    while (!available());
     CriticalSectionLock lock;
-    m_inputBuffer.dequeue(&c);
-    return c;
+    return m_inputBuffer.dequeue(buf, size);
 }
 
 bool USBWebUSBSerial::writeBuffered(const uint8_t * buf, uint16_t size)
@@ -628,7 +622,7 @@
 void USBWebUSBSerial::setManufacturerName(const std::string &manufacturerName)
 {
     m_manufacturerName = manufacturerName;
-    delete m_manufacturerStringDesc;
+    delete[] m_manufacturerStringDesc;
     m_manufacturerStringDesc = nullptr;
     createDynamicDescriptors();
 }
@@ -636,7 +630,7 @@
 void USBWebUSBSerial::setProductName(const std::string &productName)
 {
     m_productName = productName;
-    delete m_productStringDesc;
+    delete[] m_productStringDesc;
     m_productStringDesc = nullptr;
     createDynamicDescriptors();
 }
@@ -644,7 +638,7 @@
 void USBWebUSBSerial::setSerialNumber(const std::string &serialNumber)
 {
     m_serialNumber = serialNumber;
-    delete m_serialStringDesc;
+    delete[] m_serialStringDesc;
     m_serialStringDesc = nullptr;
     createDynamicDescriptors();
 }