Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit454c182

Browse files
committed
backend libpq void * argument for binary data
Change some backend libpq functions to take void * for binary datainstead of char *. This removes the need for numerous casts.Reviewed-by: Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>Discussion:https://www.postgresql.org/message-id/flat/fd1fcedb-3492-4fc8-9e3e-74b97f2db6c7%40eisentraut.org
1 parentebdccea commit454c182

File tree

6 files changed

+18
-15
lines changed

6 files changed

+18
-15
lines changed

‎src/backend/libpq/pqcomm.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ static intsocket_flush_if_writable(void);
144144
staticboolsocket_is_send_pending(void);
145145
staticintsocket_putmessage(charmsgtype,constchar*s,size_tlen);
146146
staticvoidsocket_putmessage_noblock(charmsgtype,constchar*s,size_tlen);
147-
staticinlineintinternal_putbytes(constchar*s,size_tlen);
147+
staticinlineintinternal_putbytes(constvoid*b,size_tlen);
148148
staticinlineintinternal_flush(void);
149149
staticpg_noinlineintinternal_flush_buffer(constchar*buf,size_t*start,
150150
size_t*end);
@@ -1060,8 +1060,9 @@ pq_getbyte_if_available(unsigned char *c)
10601060
* --------------------------------
10611061
*/
10621062
int
1063-
pq_getbytes(char*s,size_tlen)
1063+
pq_getbytes(void*b,size_tlen)
10641064
{
1065+
char*s=b;
10651066
size_tamount;
10661067

10671068
Assert(PqCommReadingMsg);
@@ -1209,7 +1210,7 @@ pq_getmessage(StringInfo s, int maxlen)
12091210
resetStringInfo(s);
12101211

12111212
/* Read message length word */
1212-
if (pq_getbytes((char*)&len,4)==EOF)
1213+
if (pq_getbytes(&len,4)==EOF)
12131214
{
12141215
ereport(COMMERROR,
12151216
(errcode(ERRCODE_PROTOCOL_VIOLATION),
@@ -1274,8 +1275,10 @@ pq_getmessage(StringInfo s, int maxlen)
12741275

12751276

12761277
staticinlineint
1277-
internal_putbytes(constchar*s,size_tlen)
1278+
internal_putbytes(constvoid*b,size_tlen)
12781279
{
1280+
constchar*s=b;
1281+
12791282
while (len>0)
12801283
{
12811284
/* If buffer is full, then flush it out */
@@ -1499,7 +1502,7 @@ socket_putmessage(char msgtype, const char *s, size_t len)
14991502
gotofail;
15001503

15011504
n32=pg_hton32((uint32) (len+4));
1502-
if (internal_putbytes((char*)&n32,4))
1505+
if (internal_putbytes(&n32,4))
15031506
gotofail;
15041507

15051508
if (internal_putbytes(s,len))

‎src/backend/libpq/pqformat.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -422,15 +422,15 @@ pq_getmsgint(StringInfo msg, int b)
422422
switch (b)
423423
{
424424
case1:
425-
pq_copymsgbytes(msg,(char*)&n8,1);
425+
pq_copymsgbytes(msg,&n8,1);
426426
result=n8;
427427
break;
428428
case2:
429-
pq_copymsgbytes(msg,(char*)&n16,2);
429+
pq_copymsgbytes(msg,&n16,2);
430430
result=pg_ntoh16(n16);
431431
break;
432432
case4:
433-
pq_copymsgbytes(msg,(char*)&n32,4);
433+
pq_copymsgbytes(msg,&n32,4);
434434
result=pg_ntoh32(n32);
435435
break;
436436
default:
@@ -454,7 +454,7 @@ pq_getmsgint64(StringInfo msg)
454454
{
455455
uint64n64;
456456

457-
pq_copymsgbytes(msg,(char*)&n64,sizeof(n64));
457+
pq_copymsgbytes(msg,&n64,sizeof(n64));
458458

459459
returnpg_ntoh64(n64);
460460
}
@@ -525,7 +525,7 @@ pq_getmsgbytes(StringInfo msg, int datalen)
525525
* --------------------------------
526526
*/
527527
void
528-
pq_copymsgbytes(StringInfomsg,char*buf,intdatalen)
528+
pq_copymsgbytes(StringInfomsg,void*buf,intdatalen)
529529
{
530530
if (datalen<0||datalen> (msg->len-msg->cursor))
531531
ereport(ERROR,

‎src/backend/tcop/backend_startup.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done)
480480
* sound inefficient, but it's not really, because of buffering in
481481
* pqcomm.c.)
482482
*/
483-
if (pq_getbytes((char*)&len,1)==EOF)
483+
if (pq_getbytes(&len,1)==EOF)
484484
{
485485
/*
486486
* If we get no data at all, don't clutter the log with a complaint;

‎src/backend/utils/adt/varbit.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ bit_recv(PG_FUNCTION_ARGS)
361361
SET_VARSIZE(result,len);
362362
VARBITLEN(result)=bitlen;
363363

364-
pq_copymsgbytes(buf,(char*)VARBITS(result),VARBITBYTES(result));
364+
pq_copymsgbytes(buf,VARBITS(result),VARBITBYTES(result));
365365

366366
/* Make sure last byte is correctly zero-padded */
367367
VARBIT_PAD(result);
@@ -666,7 +666,7 @@ varbit_recv(PG_FUNCTION_ARGS)
666666
SET_VARSIZE(result,len);
667667
VARBITLEN(result)=bitlen;
668668

669-
pq_copymsgbytes(buf,(char*)VARBITS(result),VARBITBYTES(result));
669+
pq_copymsgbytes(buf,VARBITS(result),VARBITBYTES(result));
670670

671671
/* Make sure last byte is correctly zero-padded */
672672
VARBIT_PAD(result);

‎src/include/libpq/libpq.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ extern intAcceptConnection(pgsocket server_fd, ClientSocket *client_sock);
7171
externvoidTouchSocketFiles(void);
7272
externvoidRemoveSocketFiles(void);
7373
externPort*pq_init(ClientSocket*client_sock);
74-
externintpq_getbytes(char*s,size_tlen);
74+
externintpq_getbytes(void*b,size_tlen);
7575
externvoidpq_startmsgread(void);
7676
externvoidpq_endmsgread(void);
7777
externboolpq_is_reading_msg(void);

‎src/include/libpq/pqformat.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ extern int64 pq_getmsgint64(StringInfo msg);
200200
externfloat4pq_getmsgfloat4(StringInfomsg);
201201
externfloat8pq_getmsgfloat8(StringInfomsg);
202202
externconstchar*pq_getmsgbytes(StringInfomsg,intdatalen);
203-
externvoidpq_copymsgbytes(StringInfomsg,char*buf,intdatalen);
203+
externvoidpq_copymsgbytes(StringInfomsg,void*buf,intdatalen);
204204
externchar*pq_getmsgtext(StringInfomsg,intrawbytes,int*nbytes);
205205
externconstchar*pq_getmsgstring(StringInfomsg);
206206
externconstchar*pq_getmsgrawstring(StringInfomsg);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp