IsWidget() "use" crash

Old bugs stored here for reference.
Locked
User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

IsWidget() "use" crash

Post by John Adams » Wed Apr 27, 2011 6:56 am

Never seen this one before.

Code: Select all

>	EQ2WorldDebug.exe!Commands::Process(unsigned int index=61, EQ2_16BitString * command_parms=0x21f0fb94, Client * client=0x278949c0)  Line 2102 + 0x6 bytes	C++
 	EQ2WorldDebug.exe!Client::HandlePacket(EQApplicationPacket * app=0x2f7f4398)  Line 1114	C++
 	EQ2WorldDebug.exe!Client::Process(bool zone_process=true)  Line 1606 + 0xf bytes	C++
 	EQ2WorldDebug.exe!ZoneServer::ClientProcess()  Line 1910 + 0x18 bytes	C++
 	EQ2WorldDebug.exe!ZoneServer::Process()  Line 885	C++
 	EQ2WorldDebug.exe!ZoneLoop(void * tmp=0x247c6118)  Line 3916 + 0x8 bytes	C++
 	EQ2WorldDebug.exe!_callthreadstart()  Line 293 + 0xf bytes	C
 	EQ2WorldDebug.exe!_threadstart(void * ptd=0x23ad8028)  Line 277	C
 	kernel32.dll!77e64829() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
Looks like someone was in their inventory, maybe clicking things? Not sure since Commands are not yet fully logged.
2011-04-27 03:47:31 WORLD__MESSAGE command: inventory
2011-04-27 03:47:45 WORLD__MESSAGE command: inventory
2011-04-27 03:47:58 WORLD__MESSAGE command: inventory
2011-04-27 03:47:59 WORLD__MESSAGE command: inventory
0: A7 01 00 00 FF 1E 02 01 - 00 00 00 FE 22 80 00 00 | ............"...
16: 00 00 FF FF FF FF FF FF - FF FF 00 00 00 00 00 00 | ................
32: 33 5E 11 00 C8 9E 01 00 - 00 00 00 00 C8 9E 01 00 | 3^..............
48: 93 0B 0C 28 00 00 00 00 - 00 00 00 00 00 00 00 00 | ...(............
64: 00 00 00 00 00 00 00 00 - 04 00 00 46 00 00 02 46 | ...........F...F
80: 00 00 01 50 00 00 03 4B - 00 00 64 46 00 00 00 6E | ...P...K..dF...n
96: 23 8E 62 30 DD EF CB 00 - 0C 03 FF 0A 00 04 FF 0A | #.b0............
112: 00 06 FF 0A 00 07 FF 0A - 00 09 FF 0A 00 0A FF 0A | ................
128: 00 0D FF 0A 00 0E FF 0A - 00 10 FF 0A 00 11 FF 0A | ................
144: 00 13 FF 0A 00 14 FF 0A - 00 01 00 03 00 00 00 01 | ................
160: 04 7F 84 00 7F 8B 01 7F - 84 00 7F 8B 01 45 7F CE | .............E..
176: 00 19 01 C7 4B DB 42 00 - D8 66 1B 00 00 00 00 00 | ....K.B..f......
192: 46 01 01 00 00 00 00 00 - 00 00 00 00 00 0C 46 69 | F.............Fi
208: 73 74 20 6F 66 20 46 75 - 72 79 00 00 80 00 00 00 | st of Fury......
224: 00 FF FF FF FF FF FF FF - FF 00 00 00 00 00 00 33 | ...............3
240: 5E 11 00 C8 9E 01 00 00 - 00 00 00 C8 9E 01 00 93 | ^...............
256: 0B 0C 28 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ..(.............
272: 00 00 00 00 00 00 00 04 - 00 00 46 00 00 02 46 00 | ..........F...F.
288: 00 01 50 00 00 03 4B 00 - 00 64 46 00 00 00 6E 23 | ..P...K..dF...n#
304: 8E 62 30 DD EF CB 00 0C - 03 FF 0A 00 04 FF 0A 00 | .b0.............
320: 06 FF 0A 00 07 FF 0A 00 - 09 FF 0A 00 0A FF 0A 00 | ................
336: 0D FF 0A 00 0E FF 0A 00 - 10 FF 0A 00 11 FF 0A 00 | ................
352: 13 FF 0A 00 14 FF 0A 00 - 01 00 03 00 00 00 01 04 | ................
368: 7F 84 00 7F 8B 01 7F 84 - 00 7F 8B 01 45 7F CE 00 | ............E...
384: 19 01 C7 4B DB 42 00 D8 - 66 1B 00 00 00 00 00 46 | ...K.B..f......F
400: 01 01 00 00 00 00 00 00 - 00 00 00 00 0C 46 69 73 | .............Fis
416: 74 20 6F 66 20 46 75 72 - 79 00 00 | t of Fury..
2011-04-27 03:49:55 WORLD__MESSAGE command: inventory
2011-04-27 03:55:15 WORLD__MESSAGE command: inventory
2011-04-27 03:56:45 WORLD__MESSAGE command: inventory
2011-04-27 03:57:12 WORLD__MESSAGE command: inventory

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: IsWidget() "use" crash

Post by John Adams » Wed Apr 27, 2011 7:09 am

Scat, the code was:

Code: Select all

		case COMMAND_USE:{
			Spawn* target = client->GetPlayer()->GetTarget();
			if(target->IsWidget())
				((Widget*)target)->HandleUse(client, "use");
			break;
						 }
and I changed to:

Code: Select all

		case COMMAND_USE:{
			Spawn* target = client->GetPlayer()->GetTarget();
			if(target && target->IsWidget())
				((Widget*)target)->HandleUse(client, "use");
			break;
						 }
Is that right? It compiled, must be good! :)

User avatar
Scatman
Retired
Posts: 1688
Joined: Wed Apr 16, 2008 5:44 am
EQ2Emu Server: Scatman's Word
Characters: Scatman
Location: New Jersey

Re: IsWidget() "use" crash

Post by Scatman » Thu Apr 28, 2011 3:35 pm

Yes that's right. Hard to tell if it was a null pointer crash or not. Regardless, that check should've been in there so hopefully it'll fix it!

WOOT: Post count: 1337
I'm never posting again. Just going to edit this post when replying to other threads.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: IsWidget() "use" crash

Post by John Adams » Thu Apr 28, 2011 4:52 pm

Yeah when I moused over "target" nothing popped up. That's why I tried that ;)

Did I fix something C++? Holy craP!

User avatar
Zcoretri
Team Member
Posts: 1642
Joined: Fri Jul 27, 2007 12:55 pm
Location: SoCal

Re: IsWidget() "use" crash

Post by Zcoretri » Thu Apr 28, 2011 5:59 pm

Scatman wrote: WOOT: Post count: 1337
I'm never posting again. Just going to edit this post when replying to other threads.
lmao :mrgreen:

Locked

Who is online

Users browsing this forum: No registered users and 0 guests