mirror of
https://gitee.com/TarsCloud/TarsCpp.git
synced 2024-12-22 22:16:38 +08:00
fix windows vector<char> is empty, &buff[0] will crash
This commit is contained in:
parent
14c96fcc2b
commit
40ca80bfed
@ -38,7 +38,7 @@ int HttpImp::doRequest(TarsCurrentPtr current, vector<char> &buffer)
|
||||
TC_HttpRequest request;
|
||||
vector<char> v = current->getRequestBuffer();
|
||||
string sBuf;
|
||||
sBuf.assign(&v[0],v.size());
|
||||
sBuf.assign(v.data(),v.size());
|
||||
|
||||
request.decode(sBuf);
|
||||
TC_HttpResponse rsp;
|
||||
|
@ -90,14 +90,14 @@ int TestPushCallBack::onDispatch(ReqMessagePtr msg)
|
||||
if(msg->request.sFuncName == "printResult")
|
||||
{
|
||||
string sRet;
|
||||
sRet.assign(&(msg->response->sBuffer[0]), msg->response->sBuffer.size());
|
||||
sRet.assign(msg->response->sBuffer.data(), msg->response->sBuffer.size());
|
||||
printResult(msg->request.iRequestId, sRet);
|
||||
return 0;
|
||||
}
|
||||
else if(msg->response->iRequestId == 0)
|
||||
{
|
||||
string sRet;
|
||||
sRet.assign(&(msg->response->sBuffer[0]), msg->response->sBuffer.size());
|
||||
sRet.assign(msg->response->sBuffer.data(), msg->response->sBuffer.size());
|
||||
printPushInfo(sRet);
|
||||
return 0;
|
||||
}
|
||||
|
@ -923,7 +923,7 @@ void ServantHandle::handleNoTarsProtocol(const TarsCurrentPtr ¤t)
|
||||
|
||||
if (current->isResponse())
|
||||
{
|
||||
current->sendResponse((const char*)(&buffer[0]), buffer.size());
|
||||
current->sendResponse((const char*)buffer.data(), buffer.size());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ int DemoServantImp::doRequest(TarsCurrentPtr current, vector<char> &buffer)
|
||||
// parse request header
|
||||
vector<char> v = current->getRequestBuffer();
|
||||
string sBuf;
|
||||
sBuf.assign(&v[0], v.size());
|
||||
sBuf.assign(v.data(), v.size());
|
||||
req.decode(sBuf);
|
||||
|
||||
int ret = doRequest(req, rsp);
|
||||
|
@ -783,10 +783,8 @@ namespace tars
|
||||
#ifndef GEN_PYTHON_MASK
|
||||
//内存分配器
|
||||
_reserve = [](BufferWriterString &os, size_t len) {
|
||||
// os._buffer.reserve(len);
|
||||
os._buffer.resize(len);
|
||||
// cout << "_reserve:" << len << endl;
|
||||
return os._buffer.data();
|
||||
return (char*)os._buffer.data();
|
||||
} ;
|
||||
#endif
|
||||
}
|
||||
|
@ -513,7 +513,7 @@ int yy_flex_debug = 0;
|
||||
#define YY_MORE_ADJ 0
|
||||
#define YY_RESTORE_YY_MORE_OFFSET
|
||||
char *yytext;
|
||||
#line 1 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 1 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
/**
|
||||
* Tencent is pleased to support the open source community by making Tars available.
|
||||
*
|
||||
@ -529,7 +529,7 @@ char *yytext;
|
||||
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations under the License.
|
||||
*/
|
||||
#line 20 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 20 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
@ -742,7 +742,7 @@ YY_DECL
|
||||
register char *yy_cp, *yy_bp;
|
||||
register int yy_act;
|
||||
|
||||
#line 67 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 67 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
|
||||
|
||||
#line 749 "tars.lex.cpp"
|
||||
@ -840,12 +840,12 @@ do_action: /* This label is used only to access EOF actions. */
|
||||
|
||||
case 1:
|
||||
YY_RULE_SETUP
|
||||
#line 69 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 69 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{ BEGIN(INCL); }
|
||||
YY_BREAK
|
||||
case 2:
|
||||
YY_RULE_SETUP
|
||||
#line 71 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 71 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
if ( include_file_stack_ptr >= MAX_INCLUDE_DEPTH )
|
||||
{
|
||||
@ -878,7 +878,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
case YY_STATE_EOF(INCL):
|
||||
#line 101 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 101 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
--include_file_stack_ptr;
|
||||
if ( include_file_stack_ptr < 0 )
|
||||
@ -897,14 +897,14 @@ case YY_STATE_EOF(INCL):
|
||||
YY_BREAK
|
||||
case 3:
|
||||
YY_RULE_SETUP
|
||||
#line 117 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 117 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
return TARS_SCOPE_DELIMITER;
|
||||
}
|
||||
YY_BREAK
|
||||
case 4:
|
||||
YY_RULE_SETUP
|
||||
#line 121 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 121 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
// C++ comment
|
||||
bool e = false;
|
||||
@ -925,7 +925,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 5:
|
||||
YY_RULE_SETUP
|
||||
#line 139 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 139 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
// C comment
|
||||
bool e = false;
|
||||
@ -976,7 +976,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 6:
|
||||
YY_RULE_SETUP
|
||||
#line 187 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 187 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
StringGrammarPtr ident = new StringGrammar;
|
||||
ident->v = yytext;
|
||||
@ -987,7 +987,7 @@ YY_RULE_SETUP
|
||||
case 7:
|
||||
/* rule 7 can match eol */
|
||||
YY_RULE_SETUP
|
||||
#line 194 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 194 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
StringGrammarPtr ident = new StringGrammar;
|
||||
ident->v = yytext;
|
||||
@ -1000,7 +1000,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 8:
|
||||
YY_RULE_SETUP
|
||||
#line 204 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 204 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
StringGrammarPtr str = new StringGrammar;
|
||||
bool e = false;
|
||||
@ -1115,7 +1115,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 9:
|
||||
YY_RULE_SETUP
|
||||
#line 316 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 316 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
errno = 0;
|
||||
IntergerGrammarPtr ptr = new IntergerGrammar;
|
||||
@ -1140,7 +1140,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 10:
|
||||
YY_RULE_SETUP
|
||||
#line 338 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 338 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
errno = 0;
|
||||
FloatGrammarPtr ptr = new FloatGrammar;
|
||||
@ -1175,7 +1175,7 @@ YY_RULE_SETUP
|
||||
case 11:
|
||||
/* rule 11 can match eol */
|
||||
YY_RULE_SETUP
|
||||
#line 369 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 369 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
if(yytext[0] == '\n')
|
||||
{
|
||||
@ -1185,7 +1185,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 12:
|
||||
YY_RULE_SETUP
|
||||
#line 376 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 376 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
{
|
||||
if(yytext[0] < 32 || yytext[0] > 126)
|
||||
{
|
||||
@ -1204,7 +1204,7 @@ YY_RULE_SETUP
|
||||
YY_BREAK
|
||||
case 13:
|
||||
YY_RULE_SETUP
|
||||
#line 392 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 392 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 1211 "tars.lex.cpp"
|
||||
@ -2214,7 +2214,7 @@ void yyfree (void * ptr )
|
||||
|
||||
#define YYTABLES_NAME "yytables"
|
||||
|
||||
#line 392 "/Users/jarod/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
#line 392 "/Volumes/MyData/centos/TarsCpp/tools/tarsgrammar/tars.l"
|
||||
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user